如果我不拥有MX记录,PHP mail()函数是否有效

时间:2008-09-02 01:10:54

标签: php dns

我不确定我在这里使用所有正确的术语,所以请原谅。

我刚刚建立了一个网站,其中包含使用PHP mail()函数发送电子邮件的联系表单。很简单。但是,实际站点实际上并不发送电子邮件,测试站点确实如此。所以这不是我的代码。

这是一个共享主机,我们有另一个网站具有完全相同的功能,所以它不是服务器。

两者之间的唯一区别是,不起作用的网站只有名称服务器指向我们,因此MX记录永远不会触及我们的服务器。

所以我的问题是,如果我们没有指向我们服务器的MX记录,有人可以确认mail()函数不会工作。感谢

6 个答案:

答案 0 :(得分:3)

是。它会工作得很好。我有一个使用mail()函数的PHP脚本,其中MX记录设置为Google Apps。

如果两个脚本位于不同的主机上(从您的帖子中有点不清楚),请确保主机不会阻止某些自定义标头。我在创建脚本时遇到了这个问题,但除了From头之外的所有内容都修复了问题。

答案 1 :(得分:2)

有些主机(Godaddy是最差的)阻止你使用sendmail和mail()。

我通常使用smtp从我的php应用程序发送电子邮件,并使用PHPMailer这非常容易。许多应用程序使用旧版本的PHPMailer,有时更新它可以提供帮助。它也很容易快速添加到短脚本中。

答案 2 :(得分:2)

嘿伙计们感谢您的回答,非常感谢。

在几个月后忽略了这个问题后再次出现,我确实找到了问题的答案。

首先,当您回答建议时,PHP和mail()函数按预期工作。邮件正在发送。

问题在于发送电子邮件时,它只是假设因为它是从mydomain.com发送到*@mydomain.com的电子邮件,电子邮件本身托管在同一台服务器上,所以它被发送到那里而忽略了MX记录。

好吧,这比这复杂一点,但那是普通的一把。

编辑: 找到了主题sendmail and MX records when mail server is not on web host的更好版本。

答案 3 :(得分:1)

mail()函数从托管脚本的服务器发送邮件。由于许多共享托管服务提供商托管不同的邮件服务器,并且因为mail()功能不支持任何类型的身份验证,许多共享托管服务提供商会阻止它。

答案 4 :(得分:1)

如果网站使用SPF,请记住在SPF记录中包含发送网站。有关详细信息,请参阅here

答案 5 :(得分:0)

是的,您可以在'from'字段中输入您想要的内容,它仍然有用。

相关问题