Я использую два шаблона электронной почты и проверенную производительность:
- 100 писем с 25 продуктами на одно письмо заняло 24 секунды.
- 100 писем с 12 продуктами на одно письмо заняло 16 секунд.
Все изображения (например, логотипы, баннеры, продукты) представляют собой текст, который вызывает URL-адреса, на которых изображения размещаются на сервере).
Мне кажется, что время увеличивается (с 16 до 24 секунды только для 100 электронных писем) - драматический c, учитывая, что я добавляю только несколько КБ на продукт. Если это происходит только при отправке 100 электронных писем, влияние отправки тысяч электронных писем по срокам или времени и производительности для завершения отправки будет высоким. Мой код использует это:
....
require_once "/.../ea-php70/root/usr/share/pear/Mail.php";
$params['sendmail_path'] = '/usr/lib/sendmail';
$mail_object =& Mail::factory('sendmail', $params);
$timeoutSet = set_time_limit(18000); // set script time out to 5 hours
...
for ($i = 1; $i <= 100; $i++) {
...
$_mail = $mail_object->send($recipients, $headers, $sendContent);
....
}
....
Как я могу ускорить реализацию PEAR :: Mail для отправки массовых писем? Я подозреваю, что, возможно, мой сервер регулирует электронную почту или что мне нужно изменить некоторые настройки PEAR :: Mail, или, возможно, использовать SMTP вместо Sendmail. Любые идеи? Спасибо.
ОБНОВЛЕНИЕ 1:
У меня 8-ядерный 16-поточный процессор. Одна вещь, которую я сделал, - это запустить мой сценарий параллельно с разных вкладок веб-браузера, чтобы, например, вместо 4 минут на отправку 8000 писем, это заняло всего 1 минуту, потому что я отправлял их по 4 партии по 2000 писем каждая, запуск сценария одновременно в 4 параллельных и независимых процессах. Я пытаюсь найти другие способы ускорить выполнение этой задачи, интенсивно использующей процессор, и мне интересно, есть ли в PEAR::Mail
некоторые настройки, которые я могу изменить для более быстрой отправки электронной почты.