我有一个配置为智能托管下游资源的 sendmail 服务器。当前配置如下:
define(`SMART_HOST',`relay:[vip.example.local]')dnl
因为它正在发送A
记录vip.example.local
。我被告知这违反了 IETF RFC-5321 第 5.1 节,其中规定:
一旦 SMTP 客户端从词汇上识别出邮件将被投递到的域
(如第 2.3.5 和 3.6 节所述),就必须执行 DNS 查找以解析域名(RFC 1035
[2])。名称应为完全限定域名
(FQDN):从部分名称或本地
别名推断 FQDN 的机制不在本规范的范围内。由于存在
问题,用于初始提交邮件的 SMTP 服务器不应进行此类推断(邮件提交服务器 [18] 具有
更大的灵活性),中间(中继)SMTP 服务器也不得进行此类推断。查找首先尝试查找与名称关联的 MX 记录。如果找到 CNAME 记录,则将结果名称视为初始名称进行处理。如果返回不存在域错误,则必须将这种情况报告为错误。如果返回临时错误,则必须将消息排队并稍后重试(请参阅第 4.5.4.1 节)。如果返回空的 MX 列表,则将该地址视为与指向该主机的隐式 MX RR 相关联,其首选项为 0。如果存在 MX 记录,但它们都不可用,或者隐式 MX 不可用,则必须将这种情况报告为错误。
如果为给定名称找到一个或多个 MX RR,SMTP 系统不得使用与该名称关联的任何地址 RR,除非使用 MX RR 定位它们;上述“隐式 MX”规则仅适用
于不存在 MX 记录的情况。如果存在 MX 记录,但
均不可用,则必须将这种情况报告为错误。当查询与 MX RR 关联的域名并
获得关联的数据字段时,该响应的数据字段必须
包含域名。查询该域名时,必须返回
至少一个地址记录(例如 A 或 AAAA RR),该记录提供
应将邮件定向到的 SMTP 服务器的 IP 地址。
任何其他响应(特别是包括在查询时将返回 CNAME 记录的值)不在本标准的范围内。RFC 2181 第 10.3 节 [38] 更详细地讨论了
禁止在数据中使用解析为 CNAME 的标签。
由于邮件服务器支持将智能托管到 IP 的选项,我不明白将智能托管到 A 记录怎么会违规。
答案1
这显然适用于尝试将邮件递送到目的地的邮件服务器。这与您将所有邮件递送到智能主机的情况完全无关;您递送到的智能主机负责遵循这一点,但您不需要。
答案2
我也是。您的服务器不会直接发送电子邮件。它会将其传递给智能主机进行发送
因此,即使它是智能主机交付,您也不应将 .local 用于 helo。.local (.lan) 是 Apple 的 mDNS 的保留名称。(zeroconf)
就您而言,您的 helo 不正确并且应该始终是一个可解析的主机名。
如果基于 .local 进行 MX 查找,则会出现错误,因为它无法在接收服务器上找到您的主机名。
并且取决于您中继的邮件服务器设置,是否允许。这取决于所使用的提供商。
客户端名称也应该是可重新解析的,但是由于许多人错误配置了 DNS 并忘记了 PTR,因此很少阻止“未知”主机名。
在你的情况下,你的服务器永远无法向我的服务器发送电子邮件。这些都检查 DNS 正确性和可解析的 helo 主机名。
越来越多的服务器正在这样做,为什么,这个设置可以节省大约 80% 的垃圾邮件。因此请更正您的 helo 主机名或不要运行邮件服务器。