Лучший способ отправить более 10 000 электронных писем с помощью PEAR/Mail_Queue
-
16-09-2019 - |
Вопрос
У меня есть cron, который генерирует всю информацию о почте и помещает ее в таблицу базы данных, используя $mail_queue->put(.....)
с возможностью удалять электронные письма после их отправки.
Вот здесь мне нужна небольшая помощь:Как лучше всего отправлять электронные письма после того, как я получу вышеуказанную информацию?Запуск $mail_queue->sendMailsInQueue()
прямо сейчас, используя другие задания cron или что-то еще?
Ограничение сервера, кстати, составляет 100 писем в минуту.На данный момент последний csv-дифференциал для Mail_Queue
не применяется (сейчас работаю над этим со службой поддержки), поэтому я не могу использовать опцию «задержка».
У меня возникла идея использовать $seconds_to_send
вариант, но он рассчитывается на основе поля create_time, что не сильно помогает, но тоже вариант.
Любые идеи и предложения будут очень признательны.
Решение
Лично я бы выбрал путь cron, поскольку он дает меньше возможностей для сбоя.Допустим, ваш почтовый сервер перестает отвечать или по какой-то другой причине становится недоступным.Или что, если вся ваша сеть отключится на несколько часов, но серверы все еще генерируют электронные письма.Я говорю: используйте очередь.
Что касается задержки, просто попросите службу/cronjob брать очередь каждые шестьдесят секунд, отправлять 100 писем и отправлять их, а затем закрывать.Вы можете получить очередь электронных писем для отправки, но это произойдет независимо от того, какую систему вы выберете.Очередь в любом случае будет пустовать в непиковые часы.
Другие советы
используйте два скрипта.один для заполнения таблицы mail_queue электронными письмами, которые вам нужно отправить, а второй скрипт для отправки этих писем частями по 90 писем за раз.установите второй скрипт, который будет активироваться примерно каждые 2 минуты.
вы также можете просто обновить свой план хостинга ;-)
почему ты не просматриваешь 100 писем и не спишь 60 секунд.это не требует затрат серверного времени, единственный недостаток: ваш скрипт работает немного дольше.