angerthor
27.10.2010, 17:55:50
Witam,
Napisałem newsteller oparty o funkcję mail() jednak zastanawiam się na ile będzie ona wydajna przy wysyłaniu emaili do naprawdę sporej liczby użytkowników - kilkudziesięciu tysięcy. Sprawdzałem, serwer ma poważny problem z wysłaniem 500 maili (trwało to jakieś 2 minuty), więc obawiam się, że przy wysłaniu 50.000 po prostu się zawiesi, a ja nie będe nawet wiedział, czy maile faktycznie zostały wysłane.
Co zrobić w takim wypadku ? Czy jest jakaś inna możliwość wysyłania maili ? Czy może podzielić jakoś tą grupę docelową i wysyłać partiami (np. po 500), dzięki czemu będę miał pewność, iż maile zostały wysłane ?
Z góry dzięki za pomoc.
Daimos
27.10.2010, 19:31:23
mozesz wysylac emaile jako ukryta kopia, a jesli chodzi o Twoje watpliwosci, czy email sie wyslal, to trzeba sprawdzac czy wysylanie sie powiodlo, wtedy bedziesz wiedzial
sniver
28.10.2010, 08:03:37
Funkcja mail to nic innego jak funkcja która wysyła wiadomość e-mail za pośrednictwem lokalnego serwera pocztowego (jeśli takowy istnieje).
Prędkość wysyłki - zależy tak naprawdę od wielu czynników tj. przepustowość serwera, ograniczenia serwera pocztowego itp...
Równie dobrze możesz skorzystać z gotowej biblioteki która połączy Cię z SMTP i wyślesz za pomocą zewnętrznego serwera - efekt działania ten sam. Ale prędkość to już inna kwestia..
thek
28.10.2010, 09:30:05
najlepiej posłuż się gotowymi bibliotekami w stylu phpmailer czy swiftmailer i opakuj je kodem. Funkcja mail sama w sobie jest zawodna i wolna, więc już tutaj upatruj problemów na przyszłość. Podział na paczki jest sensowny nie tylko by nie przekroczyć czasu działania skryptu na serwerze. Serwery odbierające pocztę mają zabezpieczenia nieraz, które oznaczają nadawcę jako spamera gdy w krótkim odstępie czasu przyjdzie od niego wiadomość na różne konta.