Chciałem dodać komentarz do twojego pytania, ale nie miałem tam wystarczająco dużo miejsca, aby sformatować i podać przykład.
Oto pomysł, który moim zdaniem może zadziałać:
1 - Załaduj wszystkie e-maile, które chcesz wysłać do bazy danych lub pliku.
2 - W aplikacji internetowej kliknij przycisk, aby wysłać e-maile. Spowoduje to przesłanie żądania Ajax do serwera. Możesz określić liczbę e-maili, które chcesz wysłać w określonym przedziale czasowym. Pamiętaj, że większość hostów ma limity liczby e-maili, które możesz wysłać co godzinę.
3 - utwórz skrypt php, który odbierze żądanie Ajax i wyśle wszystkie e-maile zgodnie ze zdefiniowanymi przez Ciebie parametrami.
4 - Wierzę, że możesz zabić swoją przeglądarkę internetową, ponieważ skrypt PHP przejdzie przez całą listę i nie wróci, dopóki nie zakończy wysyłania wszystkich e-maili.
Powyższe może zadziałać, jednak nigdy bym tego nie zrobił w ten sposób. Użyłbym cronjob, jak wspomniano powyżej. Twój cronjob będzie musiał tylko sprawdzić, czy są e-maile do wysłania, czy nie. To nie wymaga dużych zasobów.
Jeśli zdecydujesz się na realizację powyższych pomysłów, poinformuj nas o tym. Jestem ciekaw, czy to zadziała.
Powodzenia!