miver
12.03.2013, 02:23:36
Witam wszystkich.
Piszę, a właściwie napisałem już, modulik do CMSa rozsyłający newsletter do wszystkich zarejestrowanych użytkowników.
Działa to mniej więcej tak, że po wprowadzeniu do formularza potrzebnych danych w bazie danych tworzony jest wpis dla newslettera.
Następnie co jakiś czas odpala się przez CRONa skrypt .php sprawdzający, czy w bazie jest jakiś newsletter, oznaczony jako niewysłany.
Jeśli tak to leci sobie po kolei po wszystkich użytkownikach i za pomocą PHPMailera wysyła do nich co trzeba. Co 200 użytkowników (200 maili) robi przerwę na 30s, za pomocą sleep().
Do tego jest if, który sprawdza, czy nie zbliża się koniec czasu ustalonego przez max_execution_time. Jeśli tak to przerywa przerywa wysyłanie, wprowadza do bazy inforamcję, gdzie skończył i siebie też kończy.
Przy kolejny odpaleniu kontynuuje operacje, od momentu w którym skończył.
Jeśli skończył to oznacza newsletter jako wysłany.
I mam pytanie do bardziej doświadczonych. Chodzi mi o ten sleep(). Czy parametry co 200 maili na 30s są odpowiednie? Celem byłoby nie zostać oznaczonym jako serwer do wysyłania spamu i poblokowanym.
Z góry dzięki za pomoc.
Fifi209
12.03.2013, 02:26:34
mstraczkowski
12.03.2013, 02:31:41
30 sekund przerwy między 200 mailami to mało.
Warto dodać także, że większość hostingów ma dzienny limit wysyłki maili - chyba że rozmawiamy o dedykowanym serwerze.
Wysyłając 200 maili co 30 sekund na 90% jestem pewny, że twój serwer trafi na czarne listy.
thek
12.03.2013, 10:06:44
Primo: większość serwerów shared ma limity 500-600 maili na godzinę. Nie zapomnij, że ten limit obejmuje nie tylko mailingi, ale i rejestrację, nowe hasło i inne funkcjonalności, więc MUSISZ zawsze pewien zapas sobie zostawić, a nie walić "na hura".
Secundo: wiele serwerów ma filtry, które wyłapują częstotliwość maili z tego samego serwera. Jeśli w krótkim czasie z jednego przyjdzie na różne skrzynki więcej wiadomości, to go pacnie jako spamerski.
Tercio: ustawienie na sztywno co i jak to proszenie się o problemy. Lepiej już na etapie tworzenia założyć obecność konfiguratora, któremu można podać jako parametry częstotliwość wysyłki, wielkość paczki lub limit maili na godzinę/minutę/dobę. Taki dławik to w zasadzie konieczność.
acidm
12.03.2013, 11:33:52
A czy warto oprócz zachowania odstępów czasowych i małych paczek randomizować czas przerw oraz wielkość paczek.Będzie to lepiej odczytywane dla filtrów o których mówił thek?
StrefaPi
12.03.2013, 12:37:51
jak dla mnie kluczowe pytanie to: ilu jest użytkowników, do których będziesz wysyłał maile, i jak często?
sniver
12.03.2013, 13:57:21
Trzeba zacząć od tego co to za e-maile i jaka jest ich faktyczna ilość.
Warto pamiętać też o sprawdzeniu domeny, emaila oraz adresu IP czy nie występuje w RBL'ach...
No i najistotniejsze - zapoznaj się z tematem wysylek masowych opublikowanych przez google.
Jeśli chodzi o dlawik - z doświadczenia wiem, że najkorzystniej jest wysyłać 720 e-maili na godzinę. Przy takiem niewielkiej (niestety) ilości wiadomości docierały do odebranych a nie spamu. Zwiększałem też "podaż wysyłki" maili ale kierowałem mailing przez kilka serwerów...
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.