2010-05-20 65 views
0

我使用php 5.3 apache 2.2和phpmailer库发送邮件使用smtp和过程是好的。PHP和Apache块,而我发送电子邮件使用smtp

问题是发送使用smtp的电子邮件需要一段时间才能发生,而这种情况发生时,apache不会处理任何其他请求。

+0

排队它,并使用后台进程发送它。 – 2010-05-20 22:49:51

+0

如果Apache被阻塞,可能是配置错误。听起来像这个属于serverfault。 – Josh 2010-05-20 23:04:00

+0

“排队,并使用后台进程发送”....我该怎么办? – Danilo 2010-05-21 21:30:47

回答

0

我假设你的意思是处理电子邮件请求的实例需要很长时间才能完成 - 而不是它阻止weberver的所有实例?后者应该永远不会发生,除非在所有的PHP代码中有一个共享的互斥体(即使这样只有影响PHP页面的请求 - 而不是静态内容)。

你能指出它的实际使用时间吗?

MTAs(邮件传输代理)是所有关于排队邮件,并高度优化这样做 - 所以弗兰克法默的建议是一个非常糟糕的。

如果您向我们提供关于操作系统和MTA的线索,这将有所帮助。

输入法,长时间的延迟可能是由错误的DNS查找造成的 - 您在邮件配置或IP名称中使用的是IP地址吗?你有没有为本地MTA配置的智能中继(出现这个错误通常意味着邮件将被发送,但只有很长的一段时间后)。

你检查了你的MTA日志吗?

C.

+0

实际上,它发送邮件时,它连接到smtp服务器,发送数据需要5到15秒... MTA?...我不知道...我更新在php 服务器是Linux共享主机 – Danilo 2010-05-21 16:53:40

+0

邮件传输代理的MTA统计信息 - 它是执行所有邮件路由/排队的守护进程。如果您在共享主机平台上,那么您将无法调试故障,也无法修复它。向你的提供者抱怨。 – symcbean 2010-05-23 15:12:40