這是一個問題,我相信很容易解決,但我一整天都在砸我的頭。當郵件服務器不在網絡主機上時,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