Хорошо, вот моя проблема:
У меня есть список участников на веб-сайте, и периодически один из администраторов моего сайта (которые не очень разбираются в Интернете или технически подкованы) будет отправлять бюллетень в список участников.
Мой текущий список участников насчитывает более 800 человек.
Итак, я написал сценарий электронной почты, который отправляет письмо в полный список участников, члены которого перечислены в заголовке скрытой копии.
Однако я обнаружил, что мой хост-сервер имеет ограничение в 300 электронных писем в час, которое я, очевидно, превышаю, даже если участники указаны в поле СК. (Ранее я не знал, что поведение Bcc заключается в отправке отдельных электронных писем для каждого имени в списке ...)
Подумав, я пришел к выводу, что мое единственное решение состоит в том, чтобы мой сценарий отправлял только электронные письма только на первые 300 электронных писем, ждал час и отправлял второе электронное письмо следующим трем сотням, ждите еще один час и так далее, пока я не отправлю электронное письмо всему списку участников.
Оглядываясь в Интернете, я видел несколько других решений, которые люди придумали для задержки электронной почты в PHP. Sleep (), очевидно, не вариант, потому что я не могу просто оставить скрипт открытым и работающим в течение 3 или 4 часов. Я видел, как некоторые люди предлагают задания cron, но я не уверен, насколько возможно было бы создавать три новых задания cron каждый раз, когда я отправляю электронное письмо, использую их один раз, а затем удаляю.
Последнее (и то, что я считаю самым умным) решением, которое я когда-либо видел, состоит в том, чтобы иметь в своей базе данных таблицу для временного хранения сообщений, которые нужно отложить и отправить позже, а затем создать задание cron, которое проверяет эту таблицу SQL каждый час. или около того, сравнивает временную метку строки с текущей временной меткой, а затем отправляет электронное письмо, если прошел час.
Так что я спрашиваю вас всех, какой метод вы бы порекомендовали. Есть ли более простое решение, которое я полностью рассмотрел (кроме получения другого плана хостинга. Ха!), Или есть более чистый способ сделать это, чем подход с использованием базы данных / cron?
tl; dr: У меня есть> 800 электронных писем для отправки в течение часа на сервере, который ограничивает меня до 300 / час. Используя PHP, найдите способ обойти эту проблему так, чтобы человеку, отправляющему электронное письмо, нужно было только нажать «отправить».