Potrzebuję pomocy w kwestii wysyłania masowych maili, tzn. wysłać około 100 maili po 1 kliknięciu(bądź więcej). Póki co, zrobiłem to na zasadzie, że sposób na wysłanie 1 maila wrzuciłem w pętle i działa, ale nim pętla przeleci 100 powtórzeń robi się naprawdę przykro.
Czy mógłby mnie ktoś pokierować jak zrobić to w bardziej optymalny sposób ?? Maile są zbierane na podstawie danych od użytkownika.
Możesz spróbować użyć SwiftMailera z pluginem Decorator (i np. pluginem Throttler). Decorator pozwala na zdefiniowanie placeholderów w szablonie maila. Później już są one zastępowane automatycznie danymi ze zdefiniowanej tablicy.
Jeśli masz problemy z szybkością wysyłania e-maili w Swifcie, spróbuj zmienić encoding na base64:
A ja bym jeszcze zaproponował umieszczenie mejli w jakiejś kolejce i wysyłanie ich czymś, co wywołuje się okresowo. Specjalnie nie podaję przykładów, jeśli będziesz chciał wziąść to pod uwagę to można się dalej zastanawiać
to jeszcze taka uwaga - Jeśli wszystkie maile mają być identyczne (bez personalizacji), to po prostu wrzuć wszystkich odbiorców do BCC (o ile oczywiście akceptowalne jest, że końcowy użytkownik zobaczy puste po "To" w swoim programie pocztowym, ale to zwykle nie przeszkadza). Takie rozwiązanie jest najlepsze z punktu widzenia obciążenia serwera pocztowego.
Jeśli BCC odpada - to faktycznie polecam kolejkę (my stosujemy albo cron albo gearman).