php邮件功能无法将html电子邮件发送到hotmail和aol地址

时间:2014-04-25 23:00:01

标签: php

我创建了一个html简报,我想使用php mail()函数将简报发送到用户数据库中的客户电子邮件地址。在此之前,我测试包括gmail,hotmail,AOL和yahoo的serval地址。 gmail和yahoo立即收到html格式的电子邮件,一切运行良好(样式和图像按设计显示),但Hotmail和AOL没有收到任何东西。我测试使用mail()发送一个简单的文本邮件到hotmail和AOL,等待很长时间(一晚),他们能够收到文本格式的电子邮件。所以我不知道hotmail和AOL有什么问题。是否有人有同样的问题,知道如何解决它?

这是我的标题设置

    $subject = 'News Letter';

    $headers = "From: sales@example.com\r\n";
    $headers .= "Reply-To: sales@example.com\r\n";
    $headers .= "Return-Path:sales@example.com\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";


mail($email, $subject, $message, $headers); 

2 个答案:

答案 0 :(得分:0)

确保您的$消息具有正确的HTML并且还具有标记。您可以尝试发送真实的电子邮件,一些较大的公司将阻止垃圾邮件。如果您的消息只是“测试”或“测试”,那么您可能永远不会得到它。如果您从共享托管服务器或IP发送,则可能还有被阻止的问题。

确定的解决方法是设置实际的电子邮件帐户,然后使用SMTP发送邮件。

以下是使用PHPMailer()的SMTP答案。

Sending email with PHP from an SMTP server

答案 1 :(得分:0)

检查您是否为From:标头中使用的域设置了SPF记录。 作为垃圾邮件保护,这些服务可能会检查您的服务器是否允许发送该域的电子邮件(设置SPF记录解决了我的问题,即Google将我的服务器发送的邮件标记为垃圾邮件,AOL或Hotmail可能更具限制性。 。)

有关SPF记录的更多信息,请访问:https://en.wikipedia.org/wiki/Sender_Policy_Framework

另请查看DKIM:https://en.wikipedia.org/wiki/DKIM,这也可能有助于保证电子邮件的传递。