Php 奇怪的邮件行为

Php 奇怪的邮件行为,php,email,Php,Email,通过mail()发送的电子邮件是否可能不会根据原始页面发送 我有两个页面,两个页面发送的内容完全相同,$result=mail($to,$subject,$message,$headers),结果和参数是逐字节相等的,具有相同的crc32()hash 尽管mail()在所有情况下都返回true,但我们只收到其中一个页面的电子邮件。检查所有文件夹,包括垃圾邮件和垃圾。服务器端的技术支持人员说,他们在sendmail日志中看到了他们,所以显然他们要出去了 我们正在使用已确认的工作电子邮件地址从设置。

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

我有两个页面,两个页面发送的内容完全相同,
$result=mail($to,$subject,$message,$headers),结果和参数是逐字节相等的,具有相同的
crc32()
hash

尽管
mail()
在所有情况下都返回
true
,但我们只收到其中一个页面的电子邮件。检查所有文件夹,包括垃圾邮件和垃圾。服务器端的技术支持人员说,他们在
sendmail
日志中看到了他们,所以显然他们要出去了

我们正在使用已确认的工作电子邮件地址从
设置
。没有什么能反弹回来。还尝试设置
返回路径
,只是为了查看,什么都没有

还测试了只发送常规电子邮件,即不完全相同,但结果仍然相同。来自一个页面的电子邮件始终未被接收,而来自另一个页面的电子邮件则一直未被接收

我以前从未见过这样的事。有人能解释一下这个问题吗

最新发展:

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

  • 支持人员只是耸耸肩说“必须是文件名,请尝试其他文件名”

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


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

我们也看到了这种情况。我们追踪到原因是一名管理员将
mail.add_x_header=On
添加到
php.ini
。我们发现这实际上将包含文件名的多个标题注入电子邮件:

  • X-PHP-Script
  • X-EN-Info
  • X-EN-CGIPath
使用当今的神经网络自教式自治过滤器,像
ws.php
这样的常见文件名可以与垃圾邮件关联。它不在乎为什么,只在乎运气。过滤器在列表中多次看到提到的内容,突然你的电子邮件就会被垃圾邮件过滤器绊倒


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

也许他们在垃圾邮件中,或者被弹回。只是一个提示始终遵循
DRY
的概念,如果需要从多个页面调用邮件,则在邮件周围创建一个包装类如果它对一个页面有效,它对所有页面都有效:)如果消息是相同的,而不仅仅是相等的,则MUA可能会删除它们以防止重复累积。在一封电子邮件中更改几个字节,您可能会收到它。@deceze:IP黑名单不能成为原因,因为OP说从同一服务器从另一个PHP脚本发送是有效的。对于DKIM也是一样,如果发件人和发送服务器是相同的,正如OP所声称的,DKIM将是相同的。我认为这个问题不是链接问题的重复。我仔细查看了“重复问题”的公认答案,如果使用完全相同的代码从同一个服务器发送,那么这里提到的几乎所有要点都没有任何意义。我认为唯一有用的答案是“发送多个帐户”,正如我之前所评论的。按照此处所述检查更多日志记录可能会有所帮助,但公认答案中的任何一点都不能解释为什么文件名会产生影响。@deceze:在我看来,如果mail.add_x_header=Off可以解决问题,这是PHP的问题。OP并没有说它交给sendmail的代码在所有方面都是相同的,他说他的PHP代码是相同的。PHP在邮件传递给sendmail之前注入X-PHP-origing-Script头,如果文件名不同,它会将不同的内容传递给sendmail。