2

我使用 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
4

1 回答 1

5

这是一个复杂的问题。有很多事情可能会出错,但是您应该考虑以下几点:

  1. 您从事务发送电子邮件的位置。不要指望能够从您的家庭 ADSL 线路上运行它并获得良好的结果,因为大多数邮件服务器会查看邮件是否来自分配给这种用途的网络块。来自此类来源的大多数邮件都是垃圾邮件。使用http://www.anti-abuse.org/multi-rbl-check/http://spameatingmonkey.com/lookup等工具查找您的 IP 。

  2. 表现自己。作为邮件发件人建立良好声誉需要一段时间,如果您行为不端,您将失去它。如果您的服务器被黑客入侵并用于发送垃圾邮件,那也无济于事。

  3. 签署您的电子邮件。这是一个很大的话题,但是您需要的关键字是 SPF 和 DKIM。编辑:现在还有 DMARC。

  4. 将批量电子邮件标记为批量(例如标题“优先级:列表”)

  5. 为您的用户提供取消订阅机制,并在“List-Unsubscribe”标头中宣传它。

  6. 如果可能,请在收件人的 Web 界面中查看 gmail 对标记为垃圾邮件的邮件的说明。查看他们的“Authentication-Results”标头以检查您的 SPF 和 DKIM 签名是否有效。阅读 google 和 yahoo 网站上关于如何不被视为垃圾邮件的所有建议。例如,点击 gmail 邮箱中邮件中的链接。

  7. 如果您不想处理所有这些问题,请考虑通过信誉良好的 smtp 服务器发送邮件。如果您只是发送一点电子邮件,您的托管服务提供商(或您的 isp,如果您在家中进行此操作)可能会提供合适的 smtp 服务器,您可以通过适当的身份验证访问该服务器。您甚至可能有足够小的容量来通过 gmail 的服务器发送邮件(尽管它们会重写您的发件人地址以匹配您的 gmail 帐户)。对于商业卷,您可能需要考虑使用专门从事此类事情的商业 smtp 服务提供商。除了帮助您掌握获得良好交付率所需要做的所有事情外,它们还可以帮助您跟踪有多少用户实际打开电子邮件和点击链接的工具,

于 2013-06-03T16:16:53.800 回答