PHP mail() - 未收到电子邮件

时间:2009-10-23 09:17:58

标签: php ajax email gmail

我在客户的网站上设置了一个AJAX联系表格。

问题是电子邮件没有通过客户端的收件箱。

我使用Google Apps设置客户端(就像我为自己做的那样)。

我使用与我的电子邮件地址相同的联系表格,它有效。但是,如果他们的域名中没有任何电子邮件地址,那就不行了!

该域名的所有成员都在接收“普通”电子邮件。

阻止邮件()电子邮件通过可能会有什么不同?


更新

好的,所以我设法解决了。事实证明,使用CNAME将域指向正确的服务器对于 sendmail 是不够的,所以我不得不将其更改为直接指向服务器的A记录。奇怪但真实。感谢帮助人员,你指出了我正确的方向:)

2 个答案:

答案 0 :(得分:2)

这取决于服务器上的设置和接收端的服务器。

例如, hotmail需要使用正确配置的SPF records

许多邮件接收服务器(包括hotmail)要求电子邮件来自Fully Qualified Domain Name。您从PHP发送的电子邮件很可能不符合此规则。 (他们很有可能来自'阿帕奇') 请参阅hotmail self helphotmail postmaster info

PHP's mail() function不包含大量邮件标题,因此您需要自己提供。

您的邮件越多跳到目的地,就越有可能被标记为垃圾邮件。 因此,最好不要使用PHP的邮件功能,而是使用连接到SMTP服务器的mail library,就像桌面邮件应用程序一样。

总而言之,我会把我的赌注放在外部图书馆:Pear::Maildocumentation

您还可以阅读:how do you make sure email you send programmatically is not automatically marked as spam

<强>更新
在SenderId或SPF检查失败的情况下,可以在消息进入用户收件箱之前将其丢弃。该消息不会在用户垃圾文件夹中结束,它将直接转到/ dev / null。 我知道这对于hotmail和live mail至少是正确的。我认为其他主机没有理由不实施相同的政策。

答案 1 :(得分:-1)

我建议使用PHPMailer(包括他们的SMTP)库。与邮件相比,它是可靠的,并允许您创建完全自定义的电子邮件。

http://phpmailer.worxware.com/