2023年后SQL Server Database Mail适配现代SMTP服务配置问询
解决方案:Database Mail 适配现代SMTP服务配置
1. Database Mail 对接 Office 365/Exchange SMTP 配置
Office 365 目前支持SMTP AUTH方式对接(需确保邮箱账户已启用SMTP AUTH),以下是关键配置参数及步骤:
核心参数
- SMTP 服务器:
smtp.office365.com - 端口:587(仅支持STARTTLS加密)
- 加密方式:
STARTTLS(在SQL Server Database Mail中勾选"启用加密连接") - 身份验证:
基本身份验证- 用户名:完整的Office 365邮箱地址(如
user@yourdomain.com) - 密码:邮箱账户密码(若启用MFA,需使用应用专用密码)
- 用户名:完整的Office 365邮箱地址(如
配置步骤
- 在SQL Server Management Studio中打开数据库邮件配置向导,创建新的配置文件和账户。
- 填入上述SMTP服务器、端口信息,勾选"启用加密连接"。
- 选择"基本身份验证",输入邮箱账户和对应密码(MFA用户替换为应用专用密码)。
- 执行
msdb.dbo.sp_send_dbmail存储过程,指定配置文件和测试收件人验证发送效果。
注意:Office 365 已禁用TLS 1.0/1.1,需确保SQL Server所在服务器已启用TLS 1.2(可通过注册表或组策略配置)。
2. Windows Server SMTP中继适配现代安全要求配置
若Database Mail无法直接适配目标SMTP服务,可通过Windows Server SMTP服务器作为中转中继,需按以下配置满足Office 365、Gmail等服务的安全要求:
通用安全基础配置
强制启用TLS 1.2+加密
- 打开SMTP服务器属性,切换到"访问"选项卡,点击"连接"按钮,勾选"要求TLS加密"。
- 修改服务器注册表强制启用TLS 1.2客户端支持:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "Enabled"=dword:00000001 "DisabledByDefault"=dword:00000000
配置出站身份验证
- 在SMTP服务器属性的"传递"选项卡,点击"出站安全性"按钮:
- 选择"基本身份验证",输入目标SMTP服务的认证凭据(如Office 365应用密码、Gmail应用专用密码)。
- 勾选"TLS加密"选项。
- 在SMTP服务器属性的"传递"选项卡,点击"出站安全性"按钮:
分服务中继配置
对接Office 365
- 智能主机:
smtp.office365.com - 端口:587
- 确保出站安全性使用基本身份验证并启用TLS。
对接Gmail
- 智能主机:
smtp.gmail.com - 端口:587
- 出站安全性使用基本身份验证,密码需为Gmail应用专用密码(Gmail已禁用普通密码用于SMTP,需先开启2FA并创建应用专用密码)。
中继权限控制
- 在SMTP服务器的"访问"选项卡,点击"中继"按钮,添加SQL Server服务账户或服务器IP地址,仅允许可信来源通过中继发送邮件,避免开放匿名中继引发垃圾邮件问题。
内容的提问来源于stack exchange,提问作者Wayne Erfling
相关产品推荐
相关产品推荐

