我们有 3 台 AWS 托管的 Web 服务器,所有服务器的配置(据我所知)都相同。每台服务器都有一份 Web 反馈表单的副本,该表单提交给 PHP 脚本,最终调用 php 函数mail()
向我们发送电子邮件。
这在 3 个 Web 服务器上的 2 个上运行良好。在第三个服务器上,phpmail()
函数返回1
(表示邮件已发送),/etc/maillog
Web 服务器上显示邮件已接受并准备发送,然后转移到 Google 的 MX,后者也接受该邮件。
发送至 Gmail 的邮件日志示例:
Nov 7 00:40:18 ip-[redacted] sendmail[18499]: sA70eHGI018497: to=<[recipient]>, ctladdr=<apache@ip-[redacted]> (48/48), delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=121194, relay=aspmx.l.google.com. [[redacted]], dsn=2.0.0, stat=Sent (OK 1415320818 q110si8698921qgd.122 - gsmtp)
我觉得这很好。但是这条消息从来没有出现在我的收件箱里。
我已检查过的内容:
- 域名 MX 记录是合理的
- 所有 3 个主机上的 sendmail 版本相同
- /etc/mailname 在所有 3 个主机上的设置相同
有什么建议么?
答案1
该日志摘录的最后一部分确认该消息已被 Gmail 的收件人邮件服务器接受:
relay=aspmx.l.google.com. [[redacted]], dsn=2.0.0, stat=Sent (OK 1415320818 q110si8698921qgd.122 - gsmtp)
括号内的部分是远程服务器返回的确认信息的一部分,因此如果您有 Google 的支持联系人,他们大概可以使用该信息来追踪他们对邮件做了什么。但考虑到这是一项免费邮件服务,让他们这样做的可能性不大。
检查一下垃圾邮件文件夹怎么样?里面有吗?