使用PEAR的Mail包通过SMTP服务器发送简报时,有没有办法指定某种“连接重用”,这样PHP脚本就不必为每个邮件创建一个到SMTP服务器的新套接字?
当然,如果不将每个收件人的地址只放在一封电子邮件中,那么单个收件人就不会看到彼此的地址。
或者SMTP不允许这样做吗?
答案 0 :(得分:1)
嗯,我认为最好的解决方案是将每个目标都放入黑碳中。这可以保证收到邮件的人看不到其他邮件地址,并且比为每个目的地发送邮件更好的解决方案
使用php pear Mail包这是可行的。
答案 1 :(得分:1)
PEAR Mail似乎是一个绝望的案例,但是Zend的框架解决了这个问题,并且只要脚本运行(并且对象存在)就保持SMTP套接字打开:http://framework.zend.com/manual/en/zend.mail.multiple-emails.html
答案 2 :(得分:0)
你应该做的是设置'persist'参数。然后只使用一次工厂方法 - 然后确保它与使用的套接字相同。
类似的东西:
static $mail;
if (!is_object($mail)) {
$mail = Mail::factory($options['mail_method'], $params);
}
$res = $mail->send($to, $mime_headers, $body);
如果每次都调用mail :: factory,那么将创建一个新的套接字。以上述方式,您只创建一个套接字。