Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wysłanie mailingu do tysiąca osób
gg1985
post
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


Witam,

Wywala mi się skrypt (limit wykonania skryptu 30 sek), gdy wysyłam mailing do prawie tysiąca osób. Robię to przez funkcję mail, która jest wewnątrz foreacha. Jak można inaczej?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Maile wysyła się partiami, np po 50 i za jakiś czas powtarza się proces przy użyciu np. cron.
Go to the top of the page
+Quote Post
gg1985
post
Post #3





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


Aha, a coś tam słyszałem o jakiś specjalnych klasach do wysyłania (np. chyba mailer), ale to nic mi nie pomoże?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Klasy nie mają nić do Twojego problemu.
Wyjaśniam ci, że maile masz wysyłać paczkami po x maili a nie wszystkie 1000 na raz.
Go to the top of the page
+Quote Post
markonix
post
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 19.10.2011, 13:34:09 ) *
Klasy nie mają nić do Twojego problemu.
Wyjaśniam ci, że maile masz wysyłać paczkami po x maili a nie wszystkie 1000 na raz.

Troszkę mają bo gdy użyje się dobrej klasy....

Tutaj konkrety:
http://swiftmailer.org/docs/plugins.html#antiflood-plugin
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Na fakt, że ma 30 sekund na wykonanie skryptu to ta klasa nie ma żadnego wpływu. Nadal należy dzielić te 1000 maili na paczki.
Go to the top of the page
+Quote Post
leafnode
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.02.2008
Skąd: Santa Clara, CA, USA

Ostrzeżenie: (0%)
-----


Można też to zrobić trochę inaczej - rozsyłanie na wiele adresów zostawić serwerowi pocztowemu. Można podzielić listę na grupy po powiedzmy 50, i te 50 adresów wstawić do pola BCC, w To: wstawiając np. nasz adres (powszechna praktyka). Oczywiście trzeba wybadać najpierw, ile adresów najwięcej obsłuży nasz serwer.

ln.
Go to the top of the page
+Quote Post
pitbull82
post
Post #8





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


No właśnie też się tak zastanawiałem jak to najlepiej zrobić - przy rozsyłce małej liczby maili, po prostu w cronie co minutę wysyłam 1 mail i po sprawie. Jak jednak to sensownie zrealizować w przypadku większej liczby maili? Teoretycznie przy każdym cronie mogę wysyłać x maili, ale może tak być, że crony zajdą na siebie przez co niektórzy dostali by te same maile. Jest jakieś sprawdzone rozwiązanie czy może trzeba sobie wymyślić sposób, żeby takie przypadki nie miały miejsca.
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




http://forum.nospor.pl/programowanie/php/m...-osob-ft65.html
Go to the top of the page
+Quote Post
by_ikar
post
Post #10





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Cytat(pitbull82 @ 20.10.2011, 17:45:36 ) *
No właśnie też się tak zastanawiałem jak to najlepiej zrobić - przy rozsyłce małej liczby maili, po prostu w cronie co minutę wysyłam 1 mail i po sprawie. Jak jednak to sensownie zrealizować w przypadku większej liczby maili? Teoretycznie przy każdym cronie mogę wysyłać x maili, ale może tak być, że crony zajdą na siebie przez co niektórzy dostali by te same maile. Jest jakieś sprawdzone rozwiązanie czy może trzeba sobie wymyślić sposób, żeby takie przypadki nie miały miejsca.


Zakładam że maile przechowujesz w bazie, więc albo kasujesz maila którego wysłałeś, albo zapytanie (aktualizacje rekordu, o informację że mail został wysłany) obejmujesz transakcją, dzięki czemu baza danych zajmie się tym żebyś 2x tego samego zadania nie wykonał.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 10:47