Как я могу ускорить реализацию PEAR :: Mail для отправки массовых писем? - PullRequest
1 голос
/ 13 апреля 2020

Я использую два шаблона электронной почты и проверенную производительность:

  1. 100 писем с 25 продуктами на одно письмо заняло 24 секунды.
  2. 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 некоторые настройки, которые я могу изменить для более быстрой отправки электронной почты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...