我使用phpMailer,但我遇到了一个问题:当收件人是Gmail或Yahoo时,我的电子邮件最终会进入垃圾邮件文件夹。这怎么可能? 代码是这样的:
$mail->AddCustomHeader('Reply-to:info@myemal.com');
$mail->From="info@myemal.com";
$mail->FromName="MY NAME";
$mail->IsSendmail();
$mail->AddReplyTo("info@myemail.com");
$mail->From = 'info@myemail.com';
$mail->FromName = 'My name';
$mail->AddAddress($to, $toName);
$mail->Subject = $subject;
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->WordWrap = 80; // set word wrap
$body->'Hello';
$mail->MsgHTML($body);
$mail->IsHTML(true); // send as HTML
答案 0 :(得分:5)
这是一个复杂的问题。有很多事情可能会出错,但这里有一些你应该考虑的事情:
您从哪里发送电子邮件。不要指望能够从您的家庭ADSL线路运行此结果,因为大多数邮件服务器都会查看邮件是否来自为此类用途分配的网络块。来自此类来源的大多数邮件都是垃圾邮件使用http://www.anti-abuse.org/multi-rbl-check/和http://spameatingmonkey.com/lookup等工具查找您的IP。
表现自己。作为邮件发件人建立良好声誉需要一段时间,如果你行为不端,你就会失去它。如果您的服务器被黑客入侵并用于发送垃圾邮件,那也无济于事。
签署您的电子邮件。这是一个很大的主题,但您需要的关键字是SPF和DKIM。编辑:现在也是DMARC。
将批量电子邮件标记为批量(例如标题“优先级:列表”)
为您的用户提供取消订阅机制,并在“List-Unsubscribe”标题中公布。
如果可能,请在收件人的网络界面中查看gmail所说的有关标记为垃圾邮件的邮件。查看他们的“身份验证结果”标题,检查您的SPF和DKIM签名是否有效。阅读谷歌和雅虎网站上关于如何不被视为垃圾邮件的所有建议。例如,点击Gmail邮箱中的邮件链接。
如果您不想处理所有这些,请考虑通过信誉良好的smtp服务器发送邮件。如果您只是发送一些电子邮件,您的托管服务提供商(或者您在家中执行此操作的isp)可能会提供合适的smtp服务器,您可以通过适当的身份验证访问该服务器。你甚至可能有一个足够小的音量来发送像gmail的服务器(虽然他们会重写你的发件人地址以匹配你的Gmail帐户)。对于商业卷,您可能需要考虑使用专门从事此类事务的商业smtp服务提供商。除了帮助您掌握所有需要做的事情以获得良好的交付率之外,他们还将通过工具帮助您跟踪有多少用户实际打开电子邮件和点击链接以及删除不良内容您列表中的电子邮件地址。