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

PythonAnywhere部署Django项目调用Gmail SMTP发信出现535认证错误如何解决?

排查解决步骤

  • 修正配置不一致问题
    你当前的配置存在明显矛盾:settings.py中EMAIL_HOST_USER填写的发件人账号,和views.py中from_email参数指定的发件人邮箱不匹配。SMTP验证时会优先使用EMAIL_HOST_USER的账号登录,发件人地址和登录账号不一致会触发Google的安全拦截,请首先将这两个值修改为完全相同的邮箱地址。

  • 替换为应用专用密码做验证
    Google自2022年5月起已经对所有普通个人账号全面停用「低安全性应用访问」功能,即使手动开启该选项也不会生效。正确的验证方式如下:

    1. 给你的Google账号开启两步验证
    2. 在Google账号的安全设置中生成应用专用密码,生成时应用类型选择「其他」,自定义名称即可
    3. 将settings.py中的EMAIL_HOST_PASSWORD替换为生成的16位应用专用密码,不需要输入空格
  • 手动放行新设备登录请求
    PythonAnywhere的服务器IP属于Google未识别的异地登录源,即使账号凭证正确也会被临时拦截。你可以登录发件人Gmail账号,查看最近的安全活动通知,找到被拦截的登录请求,手动确认是本人操作后再次测试发送即可。

  • 排除环境限制影响
    你可以先在本地开发环境使用相同的配置测试邮件发送功能,如果本地可以正常发送,再重启PythonAnywhere的Web应用后重试:PythonAnywhere默认允许587端口的TLS SMTP请求,免费层也不需要额外申请权限。

  • 可选替代方案
    如果上述步骤都无法解决,可以更换事务邮件服务,这类服务的SMTP配置逻辑和Gmail一致,且没有严格的个人账号安全拦截限制,更适合生产环境使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:36:06