配置:
Go Daddy:域名注册商。DNS 就在这里。记录指向 bluehost。
Bluehost:网站文件的托管者。
基本上,我有一个基于 PHP 的联系表单,它使用 mail()。每当发送联系请求时,收件人是 Go Daddy 托管域中的电子邮件地址,电子邮件就无法发送。但是,当我将其发送到其他电子邮件地址(例如 @gmail)时,电子邮件可以毫无问题地发送。
我是否需要在 Go Daddy 方面进行 DNS 更改以确保交付?
任何帮助都将不胜感激。
答案1
MX 记录和本地 MTA 记录
对于大多数 MTA 来说,如果电子邮件域列在 MTA 的“本地”传送列表中,则永远不会查询 DNS。
我认为 Bluehost 使用 Plesk/cPanel。在这些系统上,默认启用本地电子邮件传递。
因此,从您的 Web 表单向您自己的网站域发送电子邮件将失败。向外部域发送电子邮件将正常。
发生的情况是,由于未参考 MX 记录,因此 Web 表单电子邮件正在本地传递。要解决此问题,您需要从 MTA 的本地传递列表中删除该域。
在 Plesk 等系统上,您可以简单地完全禁用电子邮件服务(这不会影响 mail() 函数)。在 cPanel 上,有一个使用 MX 记录而不是本地传递的选项。如果您的主机控制这些,您可能需要解释,您不希望在您的帐户上启用本地电子邮件服务。
答案2
假设 A 记录是“www”,指向托管您网站的 IP。
对于电子邮件,您需要在 DNS 服务器上设置 MX 记录,并且它们需要指向 SMTP 服务器以接受您域名的电子邮件。