使用Database Mail发送含点号的邮件分发列表失败求助
问题排查方案
首先明确:邮件地址中的点号不会导致无法接收——RFC邮件标准允许邮箱名包含点号,且你通过Outlook直接发送能成功投递,也证明点号不是问题所在。以下是针对性排查步骤:
1. 修正Gmail SMTP配置(核心问题)
Gmail的SMTP服务不支持匿名认证,且端口25通常会被ISP或Gmail自身屏蔽,这是你无法投递的主要原因:
- 更换端口:使用
587(TLS加密)或465(SSL加密),不要用25 - 启用身份验证:在Database Mail配置文件中,选择「基本身份验证」,填入你的Gmail账号和对应密码(若开启了两步验证,需使用应用专用密码)
- 调整Gmail账号设置:临时开启「不太安全的应用访问」(仅测试用,不推荐长期开启)或配置应用专用密码
2. 验证SMTP连通性
用PowerShell测试Gmail SMTP端口是否可达:
Test-NetConnection smtp.gmail.com -Port 587
如果连通失败,检查防火墙/网络策略是否封禁了对应端口。
3. 检查Database Mail详细日志
查询msdb库中的日志表,获取更详细的投递信息:
SELECT * FROM msdb.dbo.sysmail_log WHERE mailitem_id = (SELECT mailitem_id FROM msdb.dbo.sysmail_allitems WHERE recipients = 'my.test@outlook.com' ORDER BY send_request_date DESC)
同时检查你的Gmail收件箱,是否有Outlook返回的退信邮件(可能被归类到垃圾邮件或退信文件夹)。
4. 确认分发列表的权限设置
部分组织的Outlook分发列表会限制仅内部账号可发送邮件,而你的Gmail账号属于外部邮箱,会被拒收。联系管理员确认该分发列表是否允许外部发件人投递。
内容的提问来源于stack exchange,提问作者Steven Khoo
相关产品推荐
相关产品推荐

