← RFC Reference

RFC 6186:电子邮件服务自动发现的SRV记录

Current Standard DNS & Mail Routing Published March 2026
ELI5: 当你在 Thunderbird 或 Apple Mail 等邮件客户端中输入电子邮件地址时,它需要确定连接到哪些服务器来发送和接收邮件。邮件客户端可以查找特殊的 DNS 记录,而不是让你手动输入服务器名称和端口号,这些记录会说明"这个域名的 IMAP 服务器在这里,提交服务器在那里"。这就是 RFC 6186 标准化的内容。

这为什么存在

配置电子邮件客户端需要知道多个服务器主机名、端口和安全设置:用于读取邮件的 IMAP 或 POP3 服务器,以及用于发送邮件的提交服务器。大多数用户无法提供这些信息。在 SRV 记录出现之前,电子邮件客户端依赖于:

RFC 6186 提供了一种基于 DNS 的标准机制,适用于任何域。域管理员发布 SRV 记录,任何兼容的电子邮件客户端都可以自动发现正确的服务器。

工作原理

电子邮件客户端从用户的电子邮件地址中提取域,然后查询 DNS 以获取特定服务名称下的 SRV 记录。

SRV 记录格式

名称:     _service._proto.domain
类型:     SRV
内容:  priority weight port target

所需的 DNS 记录

对于域 example.com,电子邮件托管在 mail.provider.net 上:

; 接收邮件(IMAP over TLS)
_imaps._tcp.example.com.    IN SRV  0 1 993 mail.provider.net.

; 接收邮件(IMAP with STARTTLS)
_imap._tcp.example.com.     IN SRV  0 1 143 mail.provider.net.

; 接收邮件(POP3 over TLS)
_pop3s._tcp.example.com.    IN SRV  0 1 995 mail.provider.net.

; 发送邮件(Submission over TLS)
_submissions._tcp.example.com. IN SRV  0 1 465 mail.provider.net.

; 发送邮件(Submission with STARTTLS)
_submission._tcp.example.com.  IN SRV  0 1 587 mail.provider.net.

禁用服务

要表明服务不可用,请发布一条 SRV 记录,其目标为 .(单个点):

; 我们不提供 POP3
_pop3._tcp.example.com.     IN SRV  0 0 0 .
_pop3s._tcp.example.com.    IN SRV  0 0 0 .

关键技术细节

RFC 6186 定义的服务名称

SRV 名称 协议 默认端口 安全性
_imaps._tcp IMAP 993 隐式 TLS(首选)
_imap._tcp IMAP 143 STARTTLS
_pop3s._tcp POP3 995 隐式 TLS
_pop3._tcp POP3 110 STARTTLS
_submissions._tcp 提交 465 隐式 TLS(首选)
_submission._tcp 提交 587 STARTTLS

客户端发现优先级

  1. 首先查询 _imaps._tcp(根据 RFC 8314,隐式 TLS 优于 STARTTLS)。
  2. 如果没有 _imaps 记录,回退到 _imap._tcp(强制使用 STARTTLS)。
  3. 对于提交,优先选择 _submissions._tcp(端口 465)而不是 _submission._tcp(端口 587)。
  4. 使用 SRV 优先级和权重字段在多个服务器之间进行负载平衡和故障转移。

TLS 证书验证

根据 RFC 7817,客户端必须针对 SRV 目标主机名(例如 mail.provider.net)而不是用户的电子邮件域验证服务器的 TLS 证书。这允许托管提供商用单个证书为多个域提供服务。

常见错误

可送达性影响

Related RFCs