我有一个处理来自Windows应用程序的订单的网站。其工作原理如下:
大部分时间都可以正常使用。但是,有时会发生很大的延迟(几天)。客户称之为产品尚未交付的原因。
延迟邮件的电子邮件标题如下:
延迟似乎发生在这里:
Received: (from @localhost)
by ---- (8.13.8/8.13.8/Submit) id o4J9lA7M031307;
Wed, 19 May 2010 11:47:10 +0200
我已经多次向托管我网站的网络托管服务报告此问题。他们说延迟不会发生在他们的网络中(不可能)。
但是他们确实在5月26日邮件服务器中首次看到了这封电子邮件,这是邮件编写完成后的第7天。订单标有用户本地PC的时间戳,也与5月19日相符(所以这不是PC时钟问题)
有趣的是,所有延迟的邮件(订单都放在不同的日子)立即进入。所以我突然在不同的日子里收到了14封电子邮件。
有什么想法可能会引入这种延迟吗?我的PHP代码中是否存在导致此问题的错误? (我不敢相信我可以在PHP代码中引入7天的循环)
答案 0 :(得分:1)
你是对的 - 它与PHP无关。
通常,慢速邮件问题都与DNS问题有关 - 但这不是问题所在。
每当我配置了MTA(邮件传输代理)时,我已经告诉它在7天过期之前就已经放弃了。
有趣的是,所有延迟邮件(订单都放在不同的日子)都会立即进入。
听起来MTA只配置为每7天发送一次邮件(!)或出现问题,您的托管公司需要7天才能修复它。
他们说他们的网络没有发生延迟
找到新托管公司的时间。
下进行。
答案 1 :(得分:0)
电子邮件只是发送这样的信息的方式不是很可靠。
在所涉及的两台服务器之一上只有一些短期问题,这意味着尝试发送电子邮件遇到问题。
邮件服务器通常会在重试之前等待一段时间,(尽管我预计初始重试的时间会比6天短得多)。你可能会得到一点点的原因是所有的重试最终都会在一起完成。
它似乎有点奇怪,它会等待这么久才能重试。
您可能需要查看邮件服务器日志,看看他们是否在发送邮件时遇到任何问题。
答案 2 :(得分:0)
还有这个:
X-Virus-Scanned: by amavisd-new
这表明在最初接受邮件后至少还有一步。 amavis本身最有可能将邮件传递给ClamAV,Spamassassin等......其中任何一个都可能因某种原因引入延迟。
鉴于网络服务器SMTP上的8.13版本号,它很可能是Sendmail。如果您对服务器有任何访问权限,请检查带有“mailq”的外发邮件队列,如果您有权限,或让管理员为您执行此操作。由于延迟发生在服务器内的某个地方,在某些时候它应该被塞进sendmail的待处理队列中,并且还会附加延迟原因。