电子邮件提供商拒绝我的服务器电子邮件

电子邮件提供商拒绝我的服务器电子邮件

我最近更换了邮件提供商,现在无法从 crontab 接收电子邮件。在我的邮件日志中:

Sep 12 02:57:25 myhostname postfix/qmgr[14013]: 4BEE35D8005A:
from=<[email protected]>, size=886, nrcpt=1 (queue active)
Sep 12 02:57:28 myhostname postfix/smtp[50109]: 4BEE35D8005A:
to=<[email protected]>,
relay=mx.newmailserver.com[XXX.XXX.XX.XX]:25, delay=144207,
delays=144204/0.01/1.3/1.8, dsn=4.7.1, status=deferred (host
mx.newmailserver.com[XXX.XXX.XX.XX] said: 450 4.7.1 Client host rejected:
cannot find your hostname, [YYY.YYY.YYY.109] (in reply to RCPT TO
command))

在我的 resolv.conf 中:

nameserver YYY.YYY.YYY.22 
search com

该服务器指向我的一个子域名。 dig myhostname.localdomain 的结果如下:

;; QUESTION SECTION:
;myhostname.localdomain.    IN      A

;; AUTHORITY SECTION:
        54766   IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2016091600 1800 900 604800 86400                          

我读过这个'客户端主机被拒绝' 错误与反向 PTR 有关,但我不知道该在这个记录的哪里以及要写什么。

PS:名字以我的并且 IP 号码已更改,但其余部分仍然与所写的完全一致(例如:名称服务器、本地域......)

答案1

通常,邮件服务器会检查反向 DNS 字段(又称 PTR DNS 条目)。通常,这样做是为了验证电子邮件服务器是否真的来自该域,该服务器宣布“正在工作”。在 DNS 中拥有 MX 记录也会有所帮助。

您应该确保您的反向 DNS 值与您的服务器所宣布的电子邮件域相匹配。

答案2

如果您要运行自己的邮件服务器,则需要设置一些事项。如果您忽略了其中任何一项,则您可能会发现您的电子邮件在某个时间点被多家提供商阻止。

MX 记录

邮件交换 (MX) 记录是 DNS 区域文件中的一个条目,用于标识负责接收发送到您的域的电子邮件的服务器。

如果您没有 MX 记录,就不要指望收到电子邮件。

您可以使用 MX 查询功能查询您的 MX 记录www.mxtoolbox.com

PTR 记录

提供商拒绝接受您发送的电子邮件的最常见原因之一是您没有指针(PTR)记录。

当您的邮件服务器发送电子邮件时,它会告诉接收服务器其主机名和 IP 地址是什么。

接收服务器将获取 IP 地址并询问 IP 地址的主机名是什么。如果 DNS 服务器返回并表示电子邮件来自的 IP 地址的主机名与电子邮件来自的服务器声称的主机名不同,则接收服务器可能会拒绝该电子邮件。

您可以通过以下网址使用反向查询检查您的 PTR 记录:www.mxtoolbox.com

SPF 记录

发件人策略框架 (SPF) 记录告诉世界哪些服务器被允许发送您的域名的电子邮件地址。

越来越多的公司正在其邮件过滤器上启用 SPF 检查。如果您向启用了 SPF 检查的公司发送电子邮件,并且发送电子邮件的服务器未包含在您的 SPF 记录中(或者如果您没有 SPF 记录),您的电子邮件将被阻止。

您可以使用 SPF 记录查询功能查找您的 SPF 记录www.mxtoolbox.com

我需要做什么来创建这些 DNS 记录?

对于 MX 或 SPF 记录,如果您的提供商允许您修改区域文件中的 DNS 记录,您可能能够自己创建记录。

如果您需要创建 PTR 记录,请联系您的提供商并让他们创建 PTR 记录。您需要指定用于邮件服务器的主机名和公共 IP 地址。

答案3

我对这个 DNS 的事情不是很明白,因此对于那些遇到同样困难的人来说:

  • 我的服务器举办于主办公司(例如 OVH、LeaseWeb)
  • 我的领域注册于DNS公司(例如 Amazon Route 53、Verio)
  • 我的电子邮件举办于邮件公司(例如 GoDaddy、GMail)

使用 cronjob 从我的服务器向我的电子邮件发送电子邮件被阻止了。

  • cronjob 的默认发送者是“[电子邮件保护]“。
  • 使用MX工具箱使用我的 IP 和选项“反向查找“显示‘mail.mydomain.com’
  • 再次使用 MXToolBox,但使用“mail.mydomain.com”和选项“DNS 查找“显示了MailCompany的IP。

因此解决方案是:

  • 在我的主办公司*,我将 PTR 记录更改为“mydomain.com”(因为我在 DNSCompany 有一个 A 记录,将我的 IP 指向“mydomain.com”)
  • 在我的 cronjob 中设置选项MAILFROM="[email protected]"

*这个信息对我来说是最重要的,因为我认为我必须在我的 DNSCompany 中更改一些内容

相关内容