You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL调用sp_send_dbmail通过Office365发邮件偶发服务器失败错误

报错根因说明

你的sp_send_dbmail执行语句语法完全正常,因为已有邮件发送成功的记录,报错本质是SQL Server所在服务器和目标SMTP服务器(12.18.126.228:587)偶发无法建立TCP连接,常见触发原因如下:

  • 网络链路不稳定:两端之间路由抖动、数据包丢包、临时带宽拥塞,都会导致TCP握手超时
  • SMTP服务侧限流:多数邮件服务会限制同一IP、同一账号短时间内的连接频次,超过阈值后会临时拒绝新连接
  • 安全策略临时拦截:SQL侧的出站防火墙、SMTP侧的入站安全设备,可能会将高频连接判定为异常,临时拦截请求
  • 服务器资源不足:发送邮件的时间点如果SQL服务器CPU、内存、出站端口被占满,也会导致连接无法正常建立
排查解决步骤
  • 先验证网络稳定性:在SQL Server所在服务器上连续长时间执行连通性检测命令,确认非邮件发送时段是否也存在连接失败的情况:
    PowerShell检测命令:Test-NetConnection 12.18.126.228 -Port 587
    如果确实存在非业务时段也连接失败的情况,直接联系网络运维团队排查两端之间的链路问题。
  • 核查SMTP服务规则:联系邮件服务运维人员,确认messages@client-services.com账号、SQL服务器出口IP是否被设置了连接频次、发送量阈值,可申请将对应IP加入白名单、调高温控阈值,或者在SQL侧调整发送逻辑,批量发送邮件时增加间隔时间。
  • 调整数据库邮件配置:调高Database Mail的超时时间和重试次数:打开SQL Server管理节点→数据库邮件→配置数据库邮件→更改账户配置,选中Client_Messages配置对应的邮件账户,将默认10秒的服务器超时时间调整为30秒,同时设置重试次数为2-3次,重试间隔设置为60秒。
  • 核查服务器资源:匹配邮件发送失败的时间点,核查SQL服务器的CPU、内存、网络端口占用情况,如果存在资源耗尽的情况,优化服务器负载或者错开高峰时段发送邮件。

内容的提问来源于stack exchange,提问作者Noufal netspective

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:57:01