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

Django使用SendGrid发送账户确认邮件出现UnauthorizedError问题求助

错误点梳理

  • 直接触发当前报错的原因:你在异常捕获块中调用了e.message,但SendGrid抛出的UnauthorizedError没有message属性,这行异常打印代码本身有问题,先挡住了真正的发信错误信息。
  • 底层核心错误:UnauthorizedError本身代表SendGrid接口认证失败,说明你调用发信接口的凭证校验不通过。
  • 配置误区:SendGrid的Python SDK是独立的HTTP客户端,不需要添加到Django的INSTALLED_APPS列表中,这个配置是多余无效的。
  • 潜在代码漏洞:你当前贴出的视图代码里,email和user变量没有前置赋值逻辑,如果实际业务代码里也没做这一步,还会额外触发变量未定义的错误。

解决步骤

  1. 先修正异常捕获代码,拿到真实的发信错误详情:
except Exception as e:
    # 把e.message改成str(e)或者直接打印e即可
    print(str(e))
    return HttpResponse("服务器繁忙,给您带来不便非常抱歉。请稍后重试,如问题持续存在请联系管理员。")

改完之后你就能看到SendGrid返回的完整错误说明,可针对性排查问题。
2. 校验SENDGRID_API_KEY配置:直接在视图中打印os.environ.get('SENDGRID_API_KEY'),确认环境变量确实正确加载了你在SendGrid后台生成的API密钥,没有拼写错误、多余空格等问题。
3. 检查SendGrid后台配置:

  • 你生成的API Key必须开通Mail Send的发送权限
  • 代码中填的发件人邮箱<my email address>必须在SendGrid后台完成了单发件人验证,或者你已经配置了整个域名的发信权限
  1. 将sendgrid从INSTALLED_APPS中删除,该配置不生效。
  2. 补全视图中的user和email变量的赋值逻辑,确保你拿到了正确的注册用户实例和对应的邮箱地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 12:54:03