在php完成执行后,是否可以使用PEAR持久保存SMTP连接?

时间:2010-03-01 14:25:30

标签: php sockets smtp pear

正如我所见,pear只在执行脚本期间保持连接,然后释放...

3 个答案:

答案 0 :(得分:1)

不,你只能坚持多次调用send()方法。

答案 1 :(得分:0)

有两种方法可以解决您的问题:

  1. 连接池
  2. 将工作分配给后台流程
  3. 老实说,几乎从来没有理由直接从PHP Web请求发送电子邮件 - 无论如何都不保证电子邮件是低延迟的,所以如果在后台发送电子邮件需要更长的时间,那就不是很大了交易。

    因此,最好和最简单的方法就是将电子邮件存储到快速的本地存储(可能是像beanstalkd这样的作业队列),然后有一个完全独立的进程检查该队列的工作,并处理任务实际的SMTP请求。如果您愿意,那个长时间运行的脚本甚至可以打开一个SMTP连接。

答案 2 :(得分:0)

您最好的解决方案是安装一个MTU,如sendmail,postfix或QMail,然后将您的邮件本地发送到它,这将尽可能减少脚本连接的延迟,而不必混淆连接池或背景守护进程。