奇怪的mail()行为

时间:2016-08-23 19:05:55

标签: php email

通过mail()发送的电子邮件是否可能无法根据原始页面发送?

我有两个页面,两个页面都发送完全相同的内容,对于$result=mail($to, $subject, $message, $headers);,结果和参数是逐字节的,具有相同的crc32()哈希值。

即使mail()在所有情况下都返回true,我们只会收到其中一个网页的电子邮件。检查所有文件夹,包括垃圾邮件和垃圾箱。服务器端的技术支持说他们在sendmail日志中看到它们,所以显然它们已经出去了。

我们正在使用已确认的工作电子邮件地址设置From。什么都没有反弹。还尝试设置Return-Path只是为了看,没有。

还测试过发送常规电子邮件,即不相同,结果仍然相同。一直没有收到来自一个页面的电子邮件,而来自另一个页面的电子邮件是。

我以前从未见过这样的事情。任何人都可以对这个问题有所了解吗?

最新进展:

  • 两个页面上的代码现在都是相同;仍然只收到一封电子邮件!

  • 支持只是耸耸肩说“必须是文件名,尝试不同的文件”

这对我们来说不是一个很好的解决方案,因为它意味着在应用程序分发站点取消已批准的二进制文件,重新提交修订后的二进制文件,然后等待批准过程。可能需要数周时间。

相反,我们正在做的是使用curl从带有“坏名称”的页面调度到具有“好名字”的页面!仅供参考,这个坏名字显然是ws.php

1 个答案:

答案 0 :(得分:1)

我们也看到了这种情况。我们将原因追溯到管理员将ERROR\s+\[KUHOMNYXARCH\] \[ [0-9]+\] \[[0-9a-f\-]+\] (?!(\[MultiFormatRoiStreamer\.GetImageRoi\]|\[ExceptionHandlingBehavior\.ProvideFault\])) ERROR.+(?!(MultiFormatRoiStreamer|ExceptionHandlingBehavior)) 添加到mail.add_x_header = On。我们发现这实际上会将包含文件名的几个标题注入电子邮件:

  • X-PHP-始发脚本
  • X-EN-信息
  • X-EN-CGIPath

使用今天的神经网络自学自主过滤器,php.ini等常见文件名可与垃圾邮件相关联。它并不关心为什么,只是冒险。过滤器会在很多时候看到列表中的内容,突然之间您的电子邮件会触发垃圾邮件过滤器。

我们可以选择更改文件名,但我喜欢您使用ws.php重定向到安全页面的方法!