这是一个问题,我相信很容易解决,但我一整天都在砸我的头。当邮件服务器不在网络主机上时,sendmail和MX记录
我正在为客户开发一个新的网站。该网站驻留在(这是一个例子)website.com。我有一个PHP表单脚本来将访问者的请求发送到[email protected]。
当我在一个不同的域上的登台服务器上编码时,所有工作正常。当我将它移动到website.com时,邮件消息从未到达。 Web服务器位于具有主要ISP的虚拟主机上。
以下是我从那时起学到的:我的客户的邮件服务器是Microsoft Exchange,位于办公室的物理盒子中。每当外面的人发邮件给[email protected]时,邮件就会到达。 但是如果Web服务器发送到相同的电子邮件地址,则每次都会失败。这是而不是的一个PHP问题。我将shell保护到web服务器,并使用sendmail和UNIX邮件应用程序进行了测试。我还通过电子邮件从shell中的各种电子邮件帐户进行测试。例如,我可以给自己发电子邮件,没有人在website.com域名。
总之,当我登录到website.com时,发送到[email protected],[email protected],[email protected]都会失败。所有其他地址工作正常。我发现,这些被丢弃的电子邮件会被路由到Web服务器的“catchall”帐户,并放在收件箱中。
我在website.com上完成了MX查找。 MX记录指向mailsec.website.com。我可以telnet到mailsec.website.com端口25并查看SMTP服务器。
在我看来,website.com在将邮件发送到[email protected]时没有进行MX查找。我的理论是,它认为域名是本地域名,它认为没有“请求”用户帐户要将它交付给它,并将邮件放入帐户。我想要的是强制sendmail执行MX查找并将邮件发送到Exchange服务器。我在智慧的最后。我无法弄清楚如何做到这一点。
对于这个问题,我可能在这里的基地,并完全误诊。互联网邮件和MX一直对我来说似乎是一种黑色艺术,我的无知在这个问题上肯定表现出来。
看在http://serverfault.com/questions/98283/sendmail-delivering-locally-instead-of-to-mta-in-mx-record讨论。帕维尔的回应为我做了。 – 2012-02-01 17:35:18