语境。
我在 Digital Ocean droplet(Ubuntu 和 Nginx 堆栈)上托管了多个域 Web 服务。显然,DO 会自动设置 PTR 记录。但是,当我查询
host <IP_ADDRESS>
[...] not found: 3(NXDOMAIN)
droplet 使用 postfix,配置为 where inet_interfaces = all inet_protocols=ipv4
,而包括托管的 Web 服务域(带和不带 www 前缀)。这些域通过定义为的主机mydestination
发送电子邮件sendmail
scheduler.sending.ws
DNS 和邮件服务由第二个提供商运行(不是二级域名的记录注册商)。我首先注意到 A 记录指向正确的 IP 地址,但有一个拼写错误,schedule.sending.ws
可以修复,但我不确定这是否完全相关。
MX 记录正确指向第二个提供商,mail.sending.ws
还有两个 TXT 记录@
和admin
指向
v=spf1 a mx ptr include:someserver.net ~all
。
这会导致生成带有以下标题的邮件随机的mydestination
postfix main.cf 文件中定义的域:
Received: from www.other.ws ([IP_ADDRESS]:46818)
因此,两个不同的发布参考,这种情况很容易导致被标记为垃圾邮件。
请原谅我的困惑和不合常规地问了多个问题
我目前的假设是:
a) 是否需要为发布域设置新的 TXT DNS 条目,例如:v=spf1 a mx include:scheduler.sending.ws include:someserver.net ~all
?
b) 如果 a) 正确,则自然需要更正 A 记录
c) 仍需要解决标头中的不匹配问题。但这必须由使用 postfix 定义的域之一准备电子邮件的应用程序(以及特定域)指定...postfix 会配合吗?
是否缺少任何数据来正确解决此问题?
答案1
就总体情况而言,您确实应该遵循一些教程来进行基本的设置,而不是在对电子邮件工作原理了解不足的情况下尝试随机配置。毕竟,如今管理电子邮件系统是一项复杂且具有挑战性的任务。对于没有丰富经验且对自己的电子邮件服务器没有特殊需求的人,建议使用具有所有必需的垃圾邮件预防系统和开箱即用的发件人信誉处理的外部服务。
回答您分开的问题并提供学习背后技术的指导。在这个答案中,让我们将其用作www.example.com. A 192.0.2.1
Web 服务器和mail.example.com. A 192.0.2.2
用于接收邮件的邮件服务器。两者都需要发送邮件,但只能mail.example.com
接收邮件,对吗?
a) 不。SPF
include
机制不用于此目的。include:scheduler.example.com
意味着有更多规则,即 中的其他 SPF 记录scheduler.example.com. TXT
。由于可能没有这样的记录,因此会导致 PermError,可能导致拒绝该消息。SPF 记录应允许所有将为相应主机名发送邮件的服务器。如果您使用
example.com
,则将其设置为example.com. TXT
,对于 ,www.example.com.
则设置为www.example.com. TXT
。建议使用ip4
和ip6
尽可能使用机制,因为在检查 SPF 时需要的 DNS 查询较少。这将导致:example.com. IN TXT "v=spf1 ip4:192.0.2.1 ip4:192.0.2.2 ~all" www.example.com. IN TXT "v=spf1 ip4:192.0.2.1 ip4:192.0.2.2 ~all"
b) 对于来信递送,
scheduler.example.com. A
除非被用作邮件交换器例如example.com. MX scheduler.example.com.
,但可能只有mail.example.com.
当你使用它作为HELO
主机名时,你才应该有A
记录来避免SMTP 标语不匹配。c)
HELO
主机名与 Postfix 配置参数匹配smtpd_banner
默认情况下,它具有myhostname
作为变量 ie 与 相同myhostname
。mydestination
与此无关,并且不会从该设置中选择随机主机名:它用于传递邮件,而不是发送邮件。主机
HELO
名需要有匹配A
记录,建议与 IP 地址相同PTR
。它不需要匹配信封发件人域和From:
标头地址。在多域电子邮件服务器中,这也是不可能的。
对于邮件域健康问题,建议使用实际域,以便我们检查发生了什么。这个问题很广泛且不明确:不可能给出准确或一般的答案。