2013-06-01 5 views
0

У меня есть сервер, который отправляет письма для клиента, 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.

Любая помощь или идеи будут оценены! Спасибо!

ответ

1

Кто-нибудь знает, как можно быстрее отправлять большие html-письма?

Правильный вопрос: «Что занимает столько времени при отправке писем?». Если вы ответите на это, будет легче ответить «как быстрее отправлять электронные письма»?.

Итак, установите xdebug или xhprof, профиль вашего кода, посмотреть, что занимает так много времени, оптимизировать, выигрывать.

+0

Спасибо за ответ! Как я уже сказал в своем вопросе, я знаю, что более крупные html-письма занимают больше времени для отправки. Я спросил, есть ли что-нибудь, что я могу сделать, чтобы улучшить время отправки длинных html-писем. –

+0

Можете ли вы рассказать, что занимает так много времени? (время, затраченное phpmailer для кодирования электронной почты перед отправкой?) - время, затраченное на передачу данных? Что-то еще?) – arnaud576875

+0

Проблема с Phpmailer. Сначала я думал, что проблема в том, что я запросил файл шаблона для каждого отправленного отправленного письма, но затем я сделал загрузку шаблона только один раз за время выполнения. Поэтому, если у меня есть 50 писем для отправки, но все они используют один и тот же шаблон, я загружаю шаблон только один раз в переменную. Если есть всего 2 шаблона для отправки, я загружаю каждый из них один раз. Это временное решение улучшило общую продолжительность работы cron на 2-3 секунды, но каждое электронное письмо продолжает загружать внутри phpmailer, прежде чем отправлять его на почтовый сервер ... Любые идеи, почему? –

Смежные вопросы