submissions 与 465 端口
465 由 RFC 8314 正式登记为 submissions,即基于隐式 TLS 的邮件提交端口,俗称 SMTPS。它与 587 的核心区别在加密时机:465 在 TCP 连接建立后立刻开始 TLS 握手,握手完成之后才出现 SMTP 会话;587 则先以明文打招呼,再用 STARTTLS 升级。两者都用于已认证客户端的发信提交,而 25 负责服务器之间的投递。
基本信息
| 服务 | submissions(Message Submission over TLS) |
|---|---|
| 协议 | TCP |
| 规范 | RFC 8314 |
| 加密方式 | 隐式 TLS,连接即握手 |
| 认证要求 | 必须启用 SASL 认证并限制可中继范围 |
| 常见服务端 | Postfix、Exchange、Dovecot 的提交服务 |
典型使用场景
- 邮件客户端配置发信服务器:Outlook、雷鸟、手机自带邮件应用普遍支持 SMTPS
- 程序化通知发信:监控告警、工单流转、报表定时推送
- 与企业邮件网关直接加密对接,避免明文提交被链路侧策略拦截
- 扫描仪与打印机等只支持 SMTPS 的设备,配置成把扫描件直接发出
- 把客户端提交与服务器间投递分开,25 只做投递,提交统一收敛到 465 或 587
提交与投递端口对照
| 端口 | 加密模式 | 典型用途 |
|---|---|---|
| 25 | 明文或 STARTTLS | MTA 到 MTA 的服务器间投递 |
| 587 | STARTTLS | 已认证客户端提交,防火墙对明文提交更宽松 |
| 465 | 隐式 TLS | 已认证客户端提交,连接即加密 |
直连 465 验证隐式 TLS
直连 465 验证隐式 TLS
openssl s_client -connect smtp.example.com:465 -quiet -crlf # 应直接进入 TLS 会话
EHLO client.example.com # TLS 建立后才会出现 SMTP 命令交互
AUTH LOGIN # 确认服务端声明支持的认证方式
QUIT
# 用 swaks 走完整提交链路:
# swaks --server smtp.example.com:465 --tls-on-connect --auth LOGIN --auth-user ops@example.com --to who@example.com输出逐列读法
| 输出项 | 含义 | 正常/异常 |
|---|---|---|
| CONNECTED 后直接出现 TLS 信息 | 隐式 TLS 生效 | 若先看到 220 明文问候语说明端口配成了 STARTTLS |
| Peer certificate | 服务端证书 | 主体应为邮件服务器域名,过期或域名不符会被客户端拒绝 |
| 250-AUTH | 服务端声明的认证方式 | 不含任何认证方式时无法登录发信 |
| 235 2.7.0 | 认证成功返回码 | 535 表示凭据被拒,554 多为中继范围限制 |
Postfix 启用 465(master.cf 片段)
Postfix 启用 465(master.cf 片段)
# /etc/postfix/master.cf
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes # 关键:启用隐式 TLS 包装模式
-o smtpd_sasl_auth_enable=yes # 提交端口必须认证
-o smtpd_client_restrictions=permit_sasl_authenticated,reject # 未认证直接拒绝抓包若在 465 上看到明文 SMTP 问候语且没有 TLS 握手,通常是客户端把 465 当成了 STARTTLS 端口,两类配置混用会出现连接成功却发不出信的现象。
提交端口必须同时启用认证与来源限制,否则会变成开放中继入口;Postfix 侧重点看 smtpd_relay_restrictions 与 smtpd_client_restrictions 两条,发信失败时先看服务端日志里给出的拒绝原因。
企业环境常见取舍:465 与 587 同时保留以兼容不同客户端;对外只发布其中一个时,先确认移动端与自研程序都已按对应加密方式配置,再关另一个端口。
发信排障清单
- 先确认网络层:探测目标端口是否放行,排除云厂商对出站 25 的默认封禁
- 再看加密握手:直连确认是隐式 TLS,而不是先回明文问候语的 STARTTLS
- 然后验证认证:服务端声明的认证方式里必须包含客户端使用的那一种
- 认证通过后确认中继范围:中继被拒说明来源地址不在允许提交的白名单内
- 最后看收件方策略:退信原因可能来自对方对 SPF、DKIM 与 DMARC 的校验结果
- 逐层确认后再动配置,避免把网络问题当成认证问题反复改账号
证书与客户端校验:提交端口使用的证书主体必须与客户端填写的服务器名一致,自签证书还要把根证书导入客户端信任库,否则客户端会在加密握手阶段直接失败,日志里通常只看到连接被重置。