Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Mailing do 50 tys osób
Forum PHP.pl > Forum > PHP
PawelC
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
wysylaj porcjami winksmiley.jpg
PawelC
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
Eee tongue.gif
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>
  1. SELECT * FROM pages WHERE ja_chce_mejla=1 LIMIT 0, 100

A potem zwiększasz
  1. 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 winksmiley.jpg
PawelC
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
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
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.