IMAP 与 143 端口
143 是 IMAP 的默认端口。IMAP 采用服务器为真源的模型:邮件、文件夹结构与已读标志都保存在服务端,客户端只是同步视图,因此多设备体验明显优于 POP3。明文 143 会话中的登录命令可被抓包还原,连接后可用 STARTTLS 升级加密;企业环境最常见的做法是直接使用 993 的隐式 TLS,并在服务端对 143 要求强制加密。
基本信息
| 服务 | IMAP(Dovecot、Exchange、企业邮箱系统) |
|---|---|
| 协议 | TCP |
| 规范 | RFC 3501;加密端口 993 |
| 加密方式 | STARTTLS 升级,或直接使用 993 |
| 权限要求 | 按邮箱账号授权,共享邮箱需单独配置访问权限 |
| 安全等级 | 建议 993 或强制 STARTTLS |
典型使用场景
- 多设备同步:手机、电脑同时查收,已读状态与文件夹保持一致
- 企业邮箱常规配置:客户端自动发现下发 993 配置
- 共享邮箱与团队协作:多人按权限访问同一邮箱并保留操作痕迹
- 服务端检索:配合服务端搜索能力处理大量历史邮件
- 脚本化处理:用协议命令批量整理文件夹与标记邮件
验证加密与证书
验证加密与证书
openssl s_client -connect mail.example.com:993 -servername mail.example.com </dev/null | head -n 20 # 993 隐式加密
openssl s_client -connect mail.example.com:143 -starttls imap -crlf # 143 上要求升级加密
a CAPABILITY # 查看服务端能力,关注 AUTH 机制
a LOGIN ops@example.com 口令
a SELECT INBOX # 返回 EXISTS 与 UNSEEN 计数
a LOGOUT常用命令与判读
| 命令 | 作用 | 判读要点 |
|---|---|---|
| CAPABILITY | 列出服务端能力 | 关注 STARTTLS 与可用认证机制 |
| LOGIN | 登录 | 明文端口上这条命令可被抓包还原 |
| LIST 空串 星号 | 列出文件夹 | 确认文件夹结构与命名 |
| SELECT INBOX | 选中收件箱 | 返回 EXISTS 与 UNSEEN 计数 |
| FETCH n BODY | 取回指定邮件内容 | 序号会随邮件变化,脚本要按唯一标识处理 |
| IDLE | 保持在线等推送 | 用于新邮件即时提醒,注意超时与重连 |
收信端口对照
| 端口 | 协议 | 加密方式 |
|---|---|---|
| 143 | IMAP | 明文,可 STARTTLS 升级 |
| 993 | IMAPS | 隐式 TLS,企业首选 |
| 110 | POP3 | 明文,可 STLS 升级 |
| 995 | POP3S | 隐式 TLS |
服务端强制加密要点(Dovecot)
服务端强制加密要点(Dovecot)
service imap-login {
inet_listener imap {
port = 143
ssl = required # 拒绝明文登录
}
inet_listener imaps {
port = 993
ssl = yes
}
}143 明文会话中的登录命令可被抓包还原,对外服务应引导客户端使用 993,或至少要求 STARTTLS 成功后才允许登录。
推送与超时:IDLE 与推送扩展可让客户端及时收到新邮件,但长连接会被中间设备或服务端超时断开,客户端需要周期性重建并处理断线,否则表现为新邮件延迟很久才出现。
共享邮箱与权限:多人共用邮箱时按访问控制列表授权,避免直接共用同一个账号口令,否则无法区分操作者;同时明确保留策略,防止成员误删历史邮件。