Linux 网络服务器,使用外部(托管服务提供商)dns 发送邮件

Linux 网络服务器,使用外部(托管服务提供商)dns 发送邮件

我将 Ubuntu 16.04 LTS 服务器设置为具有有效公共 IP 地址的 Web 服务器(apache-php-mysql 和 sendmail)。此外,我使用托管服务提供商将 www.mydomain.com 重定向到我的 Ubuntu Web 服务器。Web 服务器运行正常,但当我使用 php 脚本发送电子邮件时,收件人收到的电子邮件是垃圾邮件。

我的主机名是 servername.mydomain.com

我的主机是 127.0.0.1 localhost.localdomain localhost ipaddress servername.mydomain.com servername

有人知道我应该怎么做才能强制 Ubuntu 服务器发送正确的电子邮件吗?


这是我从网络服务器收到的原始消息的副本。 原始邮件的副本


我根据 @telcoM 的回复找到了该问题的解决方案。我要求我的 ISP(它给了我一个静态公共 IP 地址,不是我的托管提供商)添加一个 PTR 记录,该记录将指示我的 Web 服务器。此后,从 Web 服务器发送的消息不再是垃圾邮件。

答案1

问题可能不在于您的服务器做了什么,而在于从互联网上查看时它的 DNS 身份是什么样的。

如果电子邮件是从声称是的系统发送的,servername.mydomain.com但其 IP 地址与公共互联网 DNS 报告的地址不匹配servername.mydomain.com,那么当然该电子邮件将被收件人服务器归类为垃圾邮件,因为这显然是一次粗暴的源地址伪造尝试。PTR“反向 DNS”记录是此验证的重要组成部分。例如,如果您的公共 IP 地址是A.B.C.D,那么 PTR 记录应该是D.C.B.A.in-addr.arpa. IN PTR servername.mydomain.com.

这是最古老的反垃圾邮件测试之一。

如果您的 Ubuntu Web 服务器没有静态 IP 地址和有效的 DNS 注册(正向和反向 DNS 记录相互一致),则您不应直接发送电子邮件,而是将所有外发电子邮件发送到满足这些条件的邮件服务器。也许您的托管服务提供商有允许您使用的邮件服务器?

这被称为“智能主机配置”。请参阅此问题以获得最小配置示例。

但是,现代托管服务提供商可能要求您在提交外发邮件时使用 SSL/TLS 加密和身份验证。在这种情况下,请参见此处。

不幸的是,太多无知的家庭用户让他们的系统受到感染。因此,直接来自具有不匹配 PTR 记录的 IP 或已知家庭用户 IP 块的外发电子邮件往往会被自动归类为垃圾邮件,因为许多现代垃圾邮件都是由成为垃圾邮件发送者控制的僵尸网络成员的受感染主机生成的。

由于 PTR 记录与任何其他 DNS 记录类型不同,它是根据 IP 地址块进行分区的,因此您的公共 IP 地址的 PTR 记录可能由您的网络提供商控制。您是否尝试过联系他们?如果您有一个静态公共 IP,则从技术上讲可以为其分配自定义 PTR 记录,但他们可能已做出政策决定,不向家庭客户提供此类服务,在这种情况下,您可能不得不通过网络提供商的邮件服务器发送外发电子邮件。

另一种方法是sendmail使用 PTR 记录声明的实际完全合格域名来向世界介绍自己,然后添加防晒指数/密钥管理信息系统/DMARC记录到您的域中,以将该 FQDN 列为您的域的授权电子邮件发件人。由于 SPF/DKIM/DMARC 记录都是 TXT 类型的记录,因此将它们添加到您的域中应该没有问题。

正确实施的 SPF/DKIM/DMARC 设置可能会在收件人的垃圾邮件过滤器中生成足够多的正面反垃圾邮件点,以抵消甚至完全覆盖由“PTR 记录中的原始邮件服务器的域与声明的发件人:地址不匹配”检查造成的负面打击。

您还应该使用互联网上提供的一个或多个免费邮件服务器测试工具来查看您的邮件服务器在反垃圾邮件检查方面的“表现”;例如,这个有了这些测试的结果,找到并解决导致您的外发邮件被归类为垃圾邮件的主要原因应该比仅仅猜测典型原因要容易得多。

相关内容