是什么让PHP的mail()函数变得如此之慢?

我在服务器上制作了一个快速 PHP脚本,其中包含对mail()的调用并开始测试它. html页面总是立即加载,所以我认为这意味着包含对mail()的调用PHP已经完成执行.但是,邮件()发送的电子邮件只能在通话后每隔10-20分钟收到一次.为何延迟? mail()是否会触发外部程序? (如果相关,则会将电子邮件发送到Gmail电子邮件帐户)
您看到的行为与PHP的mail()函数无关.相反,它是PHP发送邮件的SMTP邮件服务器,这需要时间来传递.该服务称为 a mail transport agent,or MTA.

有很多潜在的原因不能立即交付.可能,您在接收服务器上看到的延迟是greylisting,这意味着接收邮件服务器拒绝接受该消息,直到发送服务器(您的PHP脚本将其发送到)尝试几次重新发送它.表现良好的MTA将重试失败的发送尝试,但垃圾邮件服务器通常不会,这使得这是一种简单但有效的减少垃圾邮件方法.

它甚至可以像SMTP服务器上等待发送的长队列消息一样简单,从而使您排队等候. (虽然更可能是灰名单)

但最重要的是要记住,电子邮件不是即时的,因此永远不能保证是即时的.在过去十年左右的时间里,我们已经习惯于快速地发送电子邮件,但是你永远不能保证快速交付.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...