Witajcie,
Mam taki o to problem. Mianowicie jestem w trakcie pisania newslettera/mailingu. Ma on być dość rozbudowany, wiadomości będą rozsyłane do firm pobieranych z bazy według roznego typu kryteriow (czas obecnosci w bazie, slowo kluczowe, grupa itd), akurat to nie jest najważniejsze.
Do tej pory pisząc mniejsze mailingi robiłem to dość prosto, formularz zawierał checkboxy z adresami i sie zaznaczało do kogo mają być wysłane maile.
Korzystałem przy tym z dwóch tabel:
Tabela: mailing = id | tytul | tresc | (...dodatkowe kolumny typu załączniki)
Tabela: mailing_send = id | id_mailing | email
Nastepnie robiłem:
SELECT `mailing`.*, `mailing_send`.* FROM `mailing`.`id`=`mailing_send`.`id_mailing`
Po pomyślnym wysłaniu rekord był kasowany... Proste i bardzo skuteczne. Zbyt proste.
Sprawdzało się to przy małej ilości adresów do rozesłania. W przypadku newslettera o którym teraz piszę, będzie zachodzić potrzeba wysłania 50-150tys maili. Nie wyobrażam sobie zbytnio ładowania wszystkich wybranych według kryteriów adresów. Chyba, że jest na to jakiś szybki sposob. Zrobiłbym to w pętli while jak przy normalnym pobieraniu kolejnych rekordów z bazy.
Co mi chodzi po głowie.
Co zrobić aby optymalnie przygotować listę adresów email do których mają zostać wysłane wiadomości? Przeznaczenie pod 50-150tys rekordów. Należy zaznaczyć, że w tym samym czasie może być rozsyłanych kilka róznych newsletterów z różną listą odbiorców.