PEAR Mail, SMTP-сеансы для информационных бюллетеней?

При отправке новостных рассылок через SMTP-сервер с использованием пакета почты PEAR, есть ли способ указать какое-либо "повторное использование соединения", чтобы сценарию PHP не приходилось создавать новый сокет для SMTP-сервера для каждой отдельной почты?

Это, конечно, без указания адреса каждого получателя только в одном электронном письме, чтобы отдельные получатели не видели адреса друг друга.

Или SMTP не позволяет это?

3 ответа

Почта PEAR кажется безнадежным случаем, но среда Zend решает эту проблему и сохраняет сокет SMTP открытым до тех пор, пока выполняется скрипт (и объект существует): http://framework.zend.com/manual/en/zend.mail.multiple-emails.html

Ну, я думаю, что лучшее решение - поместить каждого судьбу в черный углерод. Это гарантирует, что тот, кто получает почту, не видит другие почтовые адреса и является лучшим решением, чем отправка почты для каждого получателя.

Это возможно с помощью пакета mail php pear.

Что вы должны сделать, это установить "постоянный" параметр. И только затем используйте фабричный метод один раз - тогда вы убедитесь, что это тот же сокет, который используется.

что-то вроде этого:

static $mail;
if (!is_object($mail)) {
    $mail = Mail::factory($options['mail_method'], $params);
}
$res = $mail->send($to, $mime_headers, $body);

Если вы будете вызывать mail::factory каждый раз, тогда будет создан новый сокет. Вышеописанным способом вы создаете только один сокет.

Другие вопросы по тегам