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 |
|
|
|
![]() |
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.
|
|
|
|
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?
|
|
|
|
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. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
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 |
|
|
|
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.
|
|
|
|
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. |
|
|
|
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.
|
|
|
|
Post
#9
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
|
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław 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. 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ł. |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 10:47 |