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

在SQL Database Mail中配置Sendgrid时无法连接邮件服务器如何解决

解决方案

核心疑问说明

Sendgrid的SMTP接口仅支持以固定值apikey为用户名、完整SG.xxxx格式API密钥为密码的基本身份验证,没有提供其他非基本身份验证的SMTP鉴权方案,你不需要尝试其他鉴权逻辑,当前配置失败是TLS加密选项未开启导致的。

1. SSMS图形化配置修正

  • 打开「配置数据库邮件」向导,选择「管理现有账户」,选中你创建的Sendgrid邮件账户进入编辑界面
  • 外发邮件服务器配置保持如下参数:
    • 服务器地址:smtp.sendgrid.net
    • 端口:587
    • 必须勾选**「服务器需要安全身份验证(SSL)连接」**选项
  • 身份验证部分保持基本身份验证,参数不要修改:
    • 用户名:apikey(不要填你的邮箱地址)
    • 密码:完整的SG.xxxx格式API密钥,注意不要带前后空格
  • 保存配置后重启SQL Server Agent服务,再发送测试邮件验证即可。

2. 存储过程修改配置方式

如果需要通过系统存储过程修改配置,直接执行以下SQL,替换对应占位符即可:

EXECUTE msdb.dbo.sysmail_update_account_sp
    @account_name = N'你创建的Database Mail账户名',
    @email_address = N'abc@mydomain.com',
    @display_name = N'自定义发件人显示名',
    @mailserver_name = N'smtp.sendgrid.net',
    @port = 587,
    @enable_ssl = 1, -- 此处必须设为1启用TLS加密
    @username = N'apikey',
    @password = N'你的SG.xxxx格式完整API密钥';

执行完成后重启SQL Server Agent服务生效。

额外排查项

如果修改后仍发送失败,优先排查以下配置:

  • 确认Sendgrid侧API密钥已经开启Mail Send权限,如果你配置了API密钥的IP访问限制,需要把SQL服务器的公网出口IP加入白名单
  • 执行以下SQL查看Database Mail的错误日志,定位具体报错原因:
SELECT * FROM msdb.dbo.sysmail_event_log ORDER BY log_date DESC;
  • 确认SQL服务器的出站防火墙、云服务商安全组没有限制587端口的TCP访问。

内容的提问来源于stack exchange,提问作者Aj S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:18:03