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 каждый раз, тогда будет создан новый сокет. Вышеописанным способом вы создаете только один сокет.