SQL Server 2016数据库邮件服务间歇性发送失败问题咨询
可能的故障原因及排查方案
1. Office 365 SMTP 基本身份验证灰度禁用(与故障时间完全匹配)
微软于2021年10月启动全球范围内Office 365租户SMTP基本身份验证的分批禁用策略,间歇性异常符合灰度阶段的特征:
- 登录Office 365管理员中心,验证发件邮箱的「经过身份验证的SMTP」开关状态
- 若租户全局禁用了SMTP基本身份验证,需单独为该发件账号添加豁免规则
2. TLS 版本兼容性不足
SQL Server 2016 Database Mail对TLS 1.2的支持依赖补丁版本,而Office 365已完全停止对TLS 1.0/1.1的支持:
- 执行以下命令确认SQL Server累计更新版本,需高于SQL Server 2016 CU2才原生支持TLS 1.2:
SELECT @@VERSION - 验证SQL Server所在Windows服务器的注册表配置,确认已启用TLS 1.2作为客户端出站协议
3. 网络链路不稳定
- 在SQL Server所在服务器执行端口连通性测试,确认无间歇性丢包、端口阻断:
Test-NetConnection smtp.office365.com -Port 587 - 排查出口公网IP是否存在被Office 365临时限流、SNAT端口池耗尽的情况
4. Database Mail 日志深度排查
sysmail_allitems仅展示通用失败提示,需查询系统日志获取底层错误信息:SELECT log_date, description FROM msdb.dbo.sysmail_log WHERE log_date >= '2021-10-11' ORDER BY log_date DESC
- 若日志存在连接超时类报错,可尝试重新创建Database Mail配置文件及关联账户,避免旧配置缓存异常
内容的提问来源于stack exchange,提问作者cofeee
相关产品推荐
相关产品推荐

