2

我正在使用 PHPmailer;虽然可能是 2012 年的版本 - 我有一段时间没有更新它了。

我正在发送这样的邮件:

        $mail = new PHPMailer();
        $mail -> IsSMTP();
        $mail -> Host = "localhost";
        $mail -> Port = 587;
        $mail -> SMTPAuth = true;
        $mail -> Username = EMAIL_USER;
        $mail -> Password = EMAIL_PASS;
        $mail -> From = EMAIL_USER;
        $mail -> FromName = "My Company";
        $mail -> AddAddress($email);  
        $mail -> AddReplyTo('<Same as "FROM">', 'User Name');
        $mail -> IsHTML(true);
        $mail -> Subject = 'This is my subject';
        $mail -> Body = $body;
        $result = $mail -> Send();

使用上面的代码,我有很多电子邮件被退回。我什至删除了 body 变量,只是在其中硬编码了“测试”——所以我认为我的身体不是原因。

我想知道是否还有其他我没有使用的标头会有所帮助,或者 PHPMailer 是否会在幕后处理这个问题?

编辑:我真的在问我是否缺少任何重要的标题信息?

4

2 回答 2

3

好吧,我解决了这个问题;上面的代码不是问题,效果很好。

在我的主题中,我使用了一个关于“验证您的帐户信息”的短语,这使得它在一些 ISP 上被屏蔽了。

所以教训是,你的主题很重要。在我意识到这一点之前,我正在查看我的 php 代码和我的正文内容。

于 2013-08-26T14:42:25.317 回答
2

处理被拒邮件时还需要注意的其他一些事项:

  • 您发送邮件的服务器很重要。许多,如 AWS,默认情况下被列入黑名单,您需要申请特殊权限才能发送邮件。如果您不确定,请使用黑名单检查。
  • 始终为您的域创建适当的txt 记录(DNS 中)。这可确保发送服务器是您域的已验证发件人。SPF
  • 如果您在发送邮件时遇到问题,请检查服务器日志以了解原因。许多提供商(例如 Outlook.com)会以 RFC 编号甚至链接的形式提供良好的反馈,以获取更多信息。
  • 当所有其他方法都失败时,请使用SendGridMandrillAmazon SNS等邮件网关 API 。
于 2013-12-20T04:38:22.807 回答