我创建了一个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);
答案 0 :(得分:0)
确保您的$消息具有正确的HTML并且还具有标记。您可以尝试发送真实的电子邮件,一些较大的公司将阻止垃圾邮件。如果您的消息只是“测试”或“测试”,那么您可能永远不会得到它。如果您从共享托管服务器或IP发送,则可能还有被阻止的问题。
确定的解决方法是设置实际的电子邮件帐户,然后使用SMTP发送邮件。
以下是使用PHPMailer()的SMTP答案。
答案 1 :(得分:0)
检查您是否为From:
标头中使用的域设置了SPF记录。
作为垃圾邮件保护,这些服务可能会检查您的服务器是否允许发送该域的电子邮件(设置SPF记录解决了我的问题,即Google将我的服务器发送的邮件标记为垃圾邮件,AOL或Hotmail可能更具限制性。 。)
有关SPF记录的更多信息,请访问:https://en.wikipedia.org/wiki/Sender_Policy_Framework
另请查看DKIM:https://en.wikipedia.org/wiki/DKIM,这也可能有助于保证电子邮件的传递。