Deliverability

什么是 MX 记录?发送邮件需要它吗?

MX 记录为收件指定服务器,但发送邮件并不需要它作为协议要求。

发送应用和收件信箱可以使用不同的域名。路由回复的记录不必存在于每个用于发送的子域上。

发送服务器如何使用 MX 记录?

发送服务器查询收件人的域名,找到接受其收件的服务器。

对于 person@example.org,它查询 example.org 的 MX 记录。每条记录指定一个目标服务器,其主机名解析为一个 IP 地址。

RFC 5321 定义了 SMTP 的这一查询流程。

当收件人域名不存在时,发送服务器报告错误。临时查询失败后,它会将邮件排队以便稍后重试。

域名没有 MX 记录时会怎样?

如果不存在 MX 记录,SMTP 将域名本身视为目标,并尝试其地址记录。

这个隐式 MX 的优先级为零。没有显式 MX 列表可以取代它,因此当域名自身的地址可用时,投递会直接送往该地址。

此回退仅适用于空的 MX 列表,无法挽救已发布但不可用的 MX 记录。

空 MX 是另一种指令:RFC 7505 定义了一种显式记录,声明该域名不接受任何邮件。缺少记录允许回退,而空 MX 拒绝投递。

MX 优先级数值是什么意思?

优先级值越低,表示发送方应越先尝试该目标。

如果值分别为 10、20 和 30,则优先选择 10 对应的目标。其余目标在该处无法投递时提供备选。将所有目标设为相同值则允许在同优先级目标间分配流量。

根据 RFC 5321,发送服务器必须对同优先级目标进行随机选择,除非有明确理由偏好某一个。相同优先级并不保证流量的精确均分。

将 MX 记录指向一个已发布地址的主机名,以便发送方可以连接。使用 A 记录发布其 IPv4 地址,或使用 AAAA 记录发布 IPv6 地址。不要使用 CNAME 别名作为目标。别名会阻止 DNS 在 MX 应答中附带地址,从而增加查询次数,如 RFC 2181 所述。

SMTP 客户端必须支持尝试备选目标。规范建议在有多个地址可用时至少尝试两个。第一个失败时不必终止投递尝试。

发送邮件需要 MX 记录吗?

SMTP 不要求你的域名上有显式 MX 记录才能发送邮件。

投递查询使用的是收件人域名。你的发送域名仍需有效的 DNS 和符合接收方要求的身份验证。接收方可以对发送域名执行自己的检查。

因此,缺少 MX 记录并不意味着一个不可达的发送域名会被所有接收方接受。

投递失败通知发往哪里?

投递失败通知发往信封发件人,即在 SMTP 投递过程中提供的用于接收失败通知的地址。

回复发往哪里?

回复通常使用 Reply-To 地址(如果存在),否则使用可见的 From 地址。

发送子域不必托管公司的所有信箱。例如,news.example.com 可用于发送,而回复发往 example.com 上的有效地址。请在邮件地址中明确这一路由选择。

运营报告发往哪里?

postmaster@abuse@ 等运营地址为其他运营方提供了报告投递或滥用问题的途径。

根据 RFC 5321,中继或投递邮件的 SMTP 服务器必须为其服务的域名接受 postmaster@。这为邮件服务问题提供了联系方式。

RFC 2142 要求组织在具备相应职能时支持角色信箱。例如,互联网服务提供商必须在其组织域名上支持 abuse@。这将投诉路由到负责的团队。

如何使用 Bird 接收邮件?

为域名启用接收功能,并发布 Bird 返回的 MX 记录。

API 的 inbound.enabled 字段接受 true 以启用接收,或 false 以禁用接收。仅发布记录并不会启用该功能。

验证完成后,发往该域名的邮件将成为入站消息。请使用专用的接收子域,因为替换公司域名的 MX 记录会改变其现有邮件的投递目标。

Bird 的 return-path 记录与入站 MX 记录分开处理投递失败通知。接收指南介绍域名设置。退信域名指南介绍失败处理。

简而言之

  1. MX 记录路由收件。

    发送服务器查询收件人域名以找到目标服务器。

  2. 缺少 MX 记录时可以回退到地址记录。

    当不存在 MX 记录时,发送服务器可以使用该域名的地址记录。

  3. 优先级值越低越先尝试。

    优先级相同的目标在没有理由偏好某一个时会被随机选择。

  4. 发送和接收需要分别决策。

    发出的邮件仍需对投递失败、回复和运营联系地址进行适当处理。

基于同一网络构建。

测试 API 密钥即刻获取。添加付款方式并验证发送者身份后,即可解锁生产环境。

你的下一个创意。
随时连接。