【发布时间】:2014-11-24 22:35:08
【问题描述】:
我在我的网站上通过 phpmailer 发送 html 电子邮件。 但是,由于某些原因,一些 live/hotmail 用户没有收到我的电子邮件。
关于我的服务器日志,所有电子邮件都成功发送到正确的电子邮件地址。 当我使用自己的(旧)hotmail 地址进行测试时,我可以正常接收电子邮件,但有些用户抱怨他们没有。
使用新 Outlook 地址的测试也没有收到来自该网站的任何电子邮件。
该脚本正在发送所有带有 SMTP 身份验证的电子邮件。 我还需要在哪里进一步观察?
我的测试脚本:
include("phpmailer/PHPMailerAutoload.php");
$mail = new PHPMailer();
$mail->IsHTML(false);
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = "mail.xxx.nl"; // sets the SMTP server
$mail->Username = "info@xxx.nl"; // SMTP account username
$mail->Password = "xxxxx"; // SMTP account password
$mail->From = "info@xxx.nl";
$mail->AddAddress('xxx@outlook.com');
$mail->AddReplyTo("info@xxx.nl");
$mail->FromName = "De website www.xxx.nl";
$mail->Subject = 'test';
$mail->Body = 'hallo';
$mail->AltBody = strip_tags('test hallo');
if(!$mail->Send())
{ $succes = false; echo "Mailer Error: " . $mail->ErrorInfo;} else { echo 'success';}
【问题讨论】:
-
让recipents检查他们的垃圾邮件文件夹,这是最有可能的问题。除此之外,hotmail 确实有黑化电子邮件的历史。您可以尝试添加 DKIM 签名(在 PHPMailer 中支持)以提高总体上的可传递性。
-
我添加了 DKIM 签名并在我刚刚创建的新 Outlook 地址上进行了测试。不幸的是,我仍然没有收到任何电子邮件,也没有在我的垃圾邮件文件夹中。我还检查了我的 ip 是否被列入黑名单,但事实并非如此。我还必须为 DKIM 签名添加 DNS 记录。在更新 DNS 之前我必须等待吗?
-
那么您的邮件服务器的日志中关于邮件传递的内容是什么?
-
它说:2014-10-01 15:17:14 1XZJmJ-0004Pl-Hr => xxxx@live.nl F=
R=lookuphost T=remote_smtp S =1432 H=mx2.hotmail.com [65.55.37.72] X=UNKNOWN:ECDHE-RSA-AES256-SHA384:256 C="250 排队等待投递的邮件" 2014-10-01 15: 17:14 1XZJmJ-0004Pl-Hr 完成
标签: php outlook phpmailer spam