使用C# SendGrid库发送邮件无法送达特定域名邮箱,如何排查解决?
排查解决步骤
- 第一步:完成SendGrid全域名验证,配置对应DNS记录
你目前仅完成了单发件人验证,仅能满足发往外部公共邮箱的基础校验要求,同域名收件场景下,微软365会对发件人身份做更严格的SPF、DKIM、DMARC校验:- 在SendGrid后台完成abc.com的域名所有权验证
- 在你的域名DNS服务商处添加SendGrid要求的DKIM记录
- 调整abc.com的SPF记录,添加
include:sendgrid.net条目,确保SendGrid的发信IP被认定为合法发件源
- 第二步:检查微软365租户的入站规则配置
多数企业365租户会默认配置规则,拦截从外部IP发送、声称来自本企业域名的伪造邮件,这类拦截不会进入隔离中心,会被直接丢弃:- 进入365 Exchange admin中心,查看入站邮件规则,是否有拦截「外部来源、发件人域为本租户域」的规则
- 可针对性添加例外规则,将SendGrid的官方IP段加入白名单,或对SendGrid发信的标识做放行
- 第三步:核对SendGrid的抑制列表(Suppression List)
检查abc.com下的目标收件邮箱是否被加入了硬弹、退订、投诉等抑制列表,若在列表中,SendGrid即使返回发送成功,也不会实际投递邮件,或投递后被对方服务器直接拒收。 - 第四步:临时调整发件人验证问题根因
将发件人替换为你已验证过的其他域名邮箱,再次向abc.com的收件人发送测试邮件,如果可以正常收到,即可确认问题根源是同域发件的身份校验失败,优先处理前两步即可。
另外补充:你代码中ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 属于调试用的不安全配置,会跳过所有SSL证书校验,生产环境部署前务必删除,不会影响邮件发送功能。
内容的提问来源于stack exchange,提问作者hiFI
相关产品推荐
相关产品推荐

