来自我的服务器的电子邮件需要什么才能通过垃圾邮件过滤器?

来自我的服务器的电子邮件需要什么才能通过垃圾邮件过滤器?

我有一个安装了 postfix 的 serverbeach 服务器。

主机名类似于 p3204059.pubip.serverbeach.com

服务器本身的 FQDN 被指定为 NONE。

我点击了更改 ptr 记录,输入了我的 ip 并将 FQDN 设置为:mysubdomain.mydomain.com 它可能尚未完成传播。IP 主机名是否与 FQDN 相同,是否与反向 DNS 相同?

我从 php 发送了一封电子邮件,它说它工作正常,但我没有收到电子邮件。我是否应该将机器上的主机名更改为 mysubdomain.mydomain.com?我还需要对 DNS 进行哪些操作才能防止我的电子邮件进入垃圾邮件文件夹?

答案1

首先是要点:

  1. 阅读相关的 RFC,例如RFC 5321,并确保您的邮件符合该要求,不要遗漏任何标题,例如Date: Subject:From:,并仔细阅读该字段的格式详细信息From:仅有电子邮件地址已不再有效。
  2. 仔细检查所From:使用的地址是否是可以接收邮件的有效地址。
  3. 让 PHP 通过您本地的 postfix 安装发送邮件,而不是直接通过互联网或通过网络托管主机发送邮件。
  4. 保持 DNS 条目对于正向和向后查找相同(mysubdomain.mydomain.com.应解析为具有指向的 PTR 记录的 IP 地址mysubdomain.mydomain.com.)。
  5. 让邮件服务器使用其正确的 FQDN ( mysubdomain.mydomain.com.) 发送其 HELO (EHLO)。
  6. 实施 DKIM 签名发送的电子邮件
  7. 避免与经常遭受黑客攻击的系统共享主机。
  8. 将您的服务器添加到DNSWL.ORG
  9. 发布SPF 记录表明您的服务器是该域的合法发件人主机
  10. 避免“垃圾”内容:-)
  11. 注意 8 位字符。它们需要在标题中进行适当的编码。

设置完成后,如果邮件仍然无法发送,您就可以进行故障排除了:

  1. 检查 Postfix 邮件队列(mailq)和日志,例如/var/log/mail*log(文件名可能因发行版不同而不同)

  2. 如果邮件没有离开服务器,postfix 通常会告诉您原因。

  3. 如果邮件确实离开了服务器,则问题出在收件人端。检查邮件日志以查找收件人的 MX 状态消息。它应该如下所示:

     2013-11-26T11:04:23.435295+01:00 jamie postfix/smtp[28919]: 415E65E3976: to=<[email protected]>, relay=hoover.blaha.se[123.45.67.89]:25, delay=0.24, delays=0.2/0.02/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 661D12C0CD)
    

请注意“ status=sent”、 “ ”(250和“ queued as 661D12C0CD”。

250是接收 MTA 的状态代码,表示成功,现在投递是他们的责任。如果状态代码以 开头4(如450),则出现临时错误,邮件应保留在您的队列中(以 可见mailq)。如果状态代码以 开头5(如550),则出现永久性故障,使用同一收件人地址重试毫无意义。然后邮件将从您的队列中删除,不会投递,并且可能会向发件人发送退回邮件。这就是您需要有效地址的原因之一From:

本例中的数字661D12C0CD是远程系统的队列 ID。在接收方查看日志(或与邮件管理员交谈)时使用该数字。

答案2

我是否应该将机器上的主机名更改为 mysubdomain.mydomain.com?

通常情况下,SPAM 过滤器会拆开域名、垃圾邮件来源 IP(在某些情况下甚至是整个 IP 块或完整的 ASN,检查保护Whatsmyip.com黑名单检查)

我还需要对 DNS 执行哪些操作才能防止我的电子邮件进入垃圾邮件文件夹?

我已经说过好几次了,但是,不要发送垃圾邮件,这应该是第一种方法。之后,对来自/到服务器的所有连接使用 SSL/TLS。暂停使用您的服务器发送垃圾邮件的帐户。不要将您的服务器配置为开放中继。加强您的服务器以防黑客。等等。等等。您可以使用太多的工具和方法来做到这一点,它不会结束。

我刚刚将 PTR 更新为主域名。如何诊断我的服务器邮件未到达目的地的原因?

您确定您的 ISP 允许您发送电子邮件吗?您是否正确配置了服务器端口?服务器是否能够自行发送邮件?很难诊断,因为从本地到中间再到端点,有太多事情可能出错,如果没有日志、ping、测试和更多测试,就不可能知道。如果您愿意,可以检查http://whatismyipaddress.com/blacklist-check并输入您的服务器 IP。如果列出,则很可能这就是您无法从服务器收到电子邮件的原因,如果没有列出,则必须提供更多信息并进行测试。

资源:

答案3

MX 工具箱是您的朋友。执行mx:mysubdomain.mydomain.comblacklist:mysubdomain.mydomain.comptr:mysubdomain.mydomain.com使用其超级工具进行搜索以诊断邮件问题。

AOL、JUNO 和 YAHOO(可能还有更多,但肯定是这些)需要来自发送电子邮件服务器的有效 PTR 记录,以便将邮件发送给其用户。我注意到 GMAIL 不需要 PTR 记录,但它会查找主机的 MX 记录。

答案4

对我来说,这两点足以通过雅虎和谷歌的垃圾邮件过滤器:

  1. 确保发送电子邮件的计算机具有反向 PTR 记录
  2. 在 DNS 和代码中配置 DomainKeys Identified Mail

您可以在 Jeff Atwood 撰写的这篇精彩文章中阅读相关内容 https://blog.codinghorror.com/so-youd-like-to-send-some-email-through-code/

相关内容