2016-08-23 63 views
3

是否有可能通过mail()发送的电子邮件不会基于始发页面发送?奇怪的邮件()行为

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

即使mail()在所有情况下都返回true,我们只收到其中一页的电子邮件。检查了所有文件夹,包括垃圾邮件和垃圾邮件。服务器端的技术支持人员表示他们在sendmail日志中看到了他们,显然他们正在外出。

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

还测试过只发送普通电子邮件,即不相同,结果仍然相同。来自一个页面的电子邮件始终没有收到,而来自另一个页面的电子邮件则是。

我从来没有见过这样的事情。任何人都可以解释一下这个问题吗?

最新进展:

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

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

这是不是一个伟大的修复对于我们,因为这意味着在应用程序分发站点取消批准的二进制,重新提交一个修改过的,然后等待审批过程。可能需要数周。

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

+1

也许他们在垃圾邮件中,或者反弹。只是一个提示总是遵循'干'概念,围绕邮件做一个包装类,如果需要从多个页面调用,如果它适用于一个,它适用于所有:) – georoot

+0

如果消息是相同的,不只是平等的, MUA可能会删除它们以防止重复累积。在一封电子邮件中更改几个字节,您可能会收到它。 – bishop

+0

@bishop - 问题首先出现在“常规”消息中,所以是从两个页面检查了很多不同的,不同的,稍微不同的,最后相同的电子邮件。 –

回答

1

我们也看到了这种情况。我们追溯到管理员添加mail.add_x_header = Onphp.ini。我们发现这其实注入包含文件名到电子邮件几个头:

  • X-PHP原产脚本
  • X-EN-信息
  • X-EN-CGIPath

随着今天的神经网络自我教导自主过滤器,常见的文件名如ws.php可能与垃圾邮件相关联。它并不在意为什么,只是玩的可能性。该过滤器可以在很多时候看到列表中的内容,并且您的电子邮件会突然跳出垃圾邮件过滤器。

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