使用PHP中的mail()函数发送电子邮件

时间:2012-01-08 21:16:21

标签: php email authentication smtp sendmail

我正在使用CentOS服务器上的mail()函数发送电子邮件。我可以使用任何人的名字发送,无需任何身份验证。例如,我可以使用我的电子邮件地址(abc@gmail.com - 说),我朋友的电子邮件地址(xyz@gmail.com - 说)或任何其他电子邮件地址(billgates@microsoft.com)发送电子邮件。 - 说)。

当有人从PHP代码收到我的电子邮件时,它看起来就像是从我想发送的电子邮件地址发送的。我使用this PHP类发送电子邮件。

我的问题:如何防止电子邮件被接收方的电子邮件服务提供商(Gmail,Hotmail,MSN,Yahoo等)自动标记为垃圾邮件?

截至目前,我只能选择使用mail()函数发送电子邮件。我的身份验证代码无效。

注意:我不打算发垃圾邮件。我的网络应用程序将向在我的网站上创建新帐户的用户发送电子邮件。因此,我不希望我的服务器的电子邮件被其电子邮件服务提供商(Gmail,MSN,Hotmail,Yahoo等)自动标记为垃圾邮件。我不希望我的电子邮件直接转到他们的垃圾邮件文件夹而不是他们的收件箱。

2 个答案:

答案 0 :(得分:1)

结帐DomainKeysSPF(发件人政策框架)。

答案 1 :(得分:1)

您应该使用您网站的域名作为电子邮件地址,例如noreply@mydomain.com。因为某些邮件服务器将对您的电子邮件地址中指定的域执行dns查找,甚至是反向DNS查找。由于gmail.com无法解析为您的网络服务器的IP,因此该电子邮件可能会被标记为垃圾邮件。电子邮件成为垃圾邮件还有很多其他因素。 例如,HTML格式的邮件(特别是在包含外部图像时)比纯文本邮件更可能被标记为垃圾邮件。

另外,请确保为您的邮件使用正确的邮件标头,它们也可能由远程邮件服务器验证。