Django应用对接SendGrid部署Azure时出现550未认证发件人错误
这个报错SMTPSenderRefused 550 Unauthenticated senders not allowed的核心原因是Azure部署环境中缺少SendGrid身份验证所需的配置,本地运行正常是因为你本地开发环境已经配置了SENDGRID_API_KEY环境变量,部署到Azure后没有同步配置该变量。
修复步骤
- 配置Azure应用服务环境变量
- 登录Azure门户,进入你部署的对应Web应用服务页面
- 在左侧导航栏找到「设置」分类下的「配置」选项,切换到「应用程序设置」标签页
- 点击「新建应用程序设置」,名称输入
SENDGRID_API_KEY,值填写你本地使用的有效SendGrid API密钥 - 点击页面顶部的「保存」按钮,Azure会自动重启应用加载新配置
- 校验SendGrid侧配置
- 确认你使用的SendGrid API密钥已开启
Mail Send发送权限 - 确认发件邮箱
nicolas@XXXXX.com已在SendGrid后台完成发件人身份验证(单个发件人验证或域名级验证均可,未验证的发件人会被SendGrid拒绝发送)
- 可选的配置校验(避免后续同类问题)
你可以在settings.py中加入环境变量存在性校验,提前识别配置缺失问题:
SENDGRID_API_KEY = os.getenv('SENDGRID_API_KEY') if not SENDGRID_API_KEY: raise ValueError("未检测到SENDGRID_API_KEY环境变量,请检查部署配置")
其他排查项
- 确认代码中硬编码的发件邮箱
nicolas@XXXXX.com和SendGrid后台验证的发件人完全一致,无拼写错误 - 默认Azure应用服务已开放587端口的出站请求,若仍有问题可检查你的应用服务是否配置了特殊的网络访问限制
内容的提问来源于stack exchange,提问作者Nicolas
相关产品推荐
相关产品推荐

