Я создал таблицу базы данных Email-Queue.Я добавлю в эту таблицу все электронные письма, которые необходимо отправить моему PHP-приложению.
Затем другой скрипт PHP будет искать все неотправленные электронные письма и отправлять их.
Я запускаю этот скрипт, используя cronjobs.К сожалению, cronjobs может работать только максимум раз в минуту.Поэтому в худшем случае пользователь должен подождать одну минуту, пока его электронная почта действительно не будет отправлена.
Моя текущая идея для обходного пути - вызвать скрипт с дополнительным параметром сна и дублировать cronjobs.
Пример:
* * * * * curl emails.php?sleep=0 >/dev/null 2>&1
* * * * * curl emails.php?sleep=10 >/dev/null 2>&1
* * * * * curl emails.php?sleep=20 >/dev/null 2>&1
* * * * * curl emails.php?sleep=30 >/dev/null 2>&1
* * * * * curl emails.php?sleep=40 >/dev/null 2>&1
* * * * * curl emails.php?sleep=50 >/dev/null 2>&1
В приведенном выше примере скриптбегать каждые 10 секунд.Первая строка скрипта emails.php будет выглядеть так:
sleep($_REQUEST['sleep']);