У меня есть сервер, который отправляет письма для клиента, 5000 в минуту :) У меня есть 10 vps настроено только с php и почтовым сервером. На каждом vps есть 10 cronjob, которые отправляют по 50 писем каждый. Они берут электронные письма из очереди в mysql с другого сервера и помещают электронные письма для отправки в собственные VPS.Как отправить большие html-письма быстрее с помощью phpmailer?
Все до сих пор. Он отлично работает, когда отправленные сообщения имеют небольшой код html, такой как max 400-500 буксировки кода. Один cronjob snd 50 писем примерно через 30 секунд. Cronjobs запускаются каждую минуту, чтобы не перегружать файл, если cronjob не заканчивается в течение одной минуты, он убивает себя и помещает электронные письма, не отправленные обратно в очередь. Итак, следующая cronjob продолжается, когда другой остается.
Моя проблема заключается в том, что большие электронные письма с 1000 или 2000 строк html-кода занимают гораздо больше времени, чтобы их можно было отправить. Например, электронная почта 4-500 строк отправляется через 0,5-0,8 секунды, поэтому cronjob заканчивает отправку 50 писем менее чем за минуту, но электронная почта 1000+ отправляется примерно за 2 секунды, поэтому cronjob никогда не может завершить отправку 50 в одном минута.
Проблема заключается в том, что сервер отправляет кампанию с нормальным доступом с 5000 электронными письмами в минуту, но большую электронную почту с электронной почтой не более 2000-3000 писем в минуту. И это означает половину скорости.
Кто-нибудь знает, как можно быстрее отправлять большие html-письма?
Я использую php 5.13, phpmailer и 8-ядерный 3,4-Ghz-сервер с аппаратным обеспечением ssd.
Любая помощь или идеи будут оценены! Спасибо!
Спасибо за ответ! Как я уже сказал в своем вопросе, я знаю, что более крупные html-письма занимают больше времени для отправки. Я спросил, есть ли что-нибудь, что я могу сделать, чтобы улучшить время отправки длинных html-писем. –
Можете ли вы рассказать, что занимает так много времени? (время, затраченное phpmailer для кодирования электронной почты перед отправкой?) - время, затраченное на передачу данных? Что-то еще?) – arnaud576875
Проблема с Phpmailer. Сначала я думал, что проблема в том, что я запросил файл шаблона для каждого отправленного отправленного письма, но затем я сделал загрузку шаблона только один раз за время выполнения. Поэтому, если у меня есть 50 писем для отправки, но все они используют один и тот же шаблон, я загружаю шаблон только один раз в переменную. Если есть всего 2 шаблона для отправки, я загружаю каждый из них один раз. Это временное решение улучшило общую продолжительность работы cron на 2-3 секунды, но каждое электронное письмо продолжает загружать внутри phpmailer, прежде чем отправлять его на почтовый сервер ... Любые идеи, почему? –