PawelC
14.02.2008, 18:16:07
Mam pytanie, posiadam całkowicie legalną bazę adresów e-mail i chciałbym do nich rozesłać mailing odnośnie serwisu, jednak niewiem jak sobie poradzić z tym, aby wysłać do wszystkich maila tak, aby wszystkie poszły, normalnym mailem niewyślę 50tys maili ponieważ na serwerach są 30 sekundowe ograniczenia.
Piniek
14.02.2008, 18:20:57
wysylaj porcjami
PawelC
14.02.2008, 18:24:11
Myślałem nad tym aby to zapętlić, wysłać mailing do np 100 osób i do tych co wyśle w bazie zmieni się status na 1, i będzie dalej wysyłał do użytkowników którzy mają status 0 i tak w kółko.
starach
14.02.2008, 18:39:21
Eee

Pobierasz z bazy mejle używając dyrektywy SQL LIMIT od, ile
Zapisujesz sobie parametry limitu i nie musisz obciążać całego procesu rozpoznawaniem wartości pola status
edit>
SELECT * FROM pages WHERE ja_chce_mejla=1 LIMIT 0, 100
A potem zwiększasz
SELECT * FROM pages WHERE ja_chce_mejla=1 LIMIT 100, 100
potem 200,100 i tak dalej
Piszesz skrypt który odpalasz z crona i po ptakach
PawelC
14.02.2008, 18:49:54
A gdybym zrobił tak jak napisałeś, tyle że bez sql limit i odpalił to z crona? To by wysłał te 50tys maili w ciągłości, czy byłyby jakieś problemy?
starach
14.02.2008, 19:00:25
Prawdę powiedziawszy diabli wiedzą co się może stać dlatego na ogół porcjuje się takie operacje.
Na wypadek chociażby spadku napięcia i restartu serwera.
Jeśli wykonanie się niespodziewanie przerwie to nie będziesz wiedział kiedy wysyłanie się zakończyło.
Przez co nie będziesz miał pojęcia od którego rekordu je wznowić.
Ponadto taki skrypcik odpalany z crona może sporo zasobów systemowych pożerać ( nie musi ale może )
Może sprawić że użytkownicy twojej strony będą dostawać nagłych napadów szału lub przyczepi się do ciebie twoja firma hostingowa,
bo wielce prawdopodobne jest że obciążenie które będzie on generował będzie większe niż 25 % zasobów serwera a na tyle zazwyczaj pozwala dostawca usługi hostingowej przy opcji hosting współdzielony.
Kocurro
14.02.2008, 19:24:56
Jeśli chcesz wysyłać mailing do więcej niż 1 osoby to koniecznie musisz zadbać o odpowiednie czyszczenie bazy adresów tak by maile się nie odbijały.
Poza tym proponuję użyć opcji szukaj bo temat był wałkowany wiele razy - sam nawet dawałem rady w nim.
pozdr.
MajareQ
15.02.2008, 08:35:37
W takim wypadku jak bym najpierw sprawdził, że nie ma żadnych multi i czy mejle się nie powtarzają. Ograniczył by to ttrochę ilść wysyłanych mejli. Potem zrbiłem bym zapytania z LIMITem i WHERE send = 0. Na ddatek dobrze by było robić przerwy np 15 minut.
pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.