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

部署在Railway的Django应用发送Gmail时SMTP认证错误求助

解决Railway部署Django应用时Gmail SMTP认证错误的方案
  • 检查Railway的环境变量配置
    本地和EC2都能正常运行,大概率是Railway上的环境变量没配置到位。得确认这几点:

    • EMAIL_HOST_USER是你的完整Gmail邮箱(比如xxx@gmail.com),别出现拼写错误。
    • EMAIL_HOST_PASSWORD是Google生成的应用专用密码,不是你的Gmail登录密码,且密码没有多余空格或特殊字符被转义。
    • 去Railway的应用控制台重新输入一遍环境变量,然后重启应用,避免变量未生效。
  • 确认Google账号的安全设置

    • 你的Google账号必须开启两步验证,应用密码只有在两步验证开启后才能生效。
    • 看看Google账号的“不安全应用访问”设置——虽然应用密码不需要这个,但如果之前开启过又关闭,可能得重新生成应用密码。
    • 登录Google账号,查看最近的登录记录,要是Railway的IP被标记为可疑,手动允许该登录尝试即可。
  • 核对Django的SMTP配置参数
    确保settings.py里的SMTP配置完全正确,给你个标准模板参考:

    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'smtp.gmail.com'
    EMAIL_PORT = 587
    EMAIL_USE_TLS = True
    EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER')
    EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
    

    注意:别直接把密码硬编码在代码里,必须通过环境变量读取,避免密码泄露。

  • 在Railway环境下测试SMTP连接
    可以在Django项目里加个简单的测试脚本,直接测试SMTP连接,排除Django配置之外的问题:

    import smtplib
    from email.mime.text import MIMEText
    import os
    
    def test_smtp():
        try:
            server = smtplib.SMTP('smtp.gmail.com', 587)
            server.starttls()
            server.login(os.environ.get('EMAIL_HOST_USER'), os.environ.get('EMAIL_HOST_PASSWORD'))
            msg = MIMEText('Railway环境下的SMTP测试邮件')
            msg['Subject'] = 'SMTP连接测试'
            msg['From'] = os.environ.get('EMAIL_HOST_USER')
            msg['To'] = os.environ.get('EMAIL_HOST_USER')
            server.send_message(msg)
            server.quit()
            print('SMTP连接成功')
        except Exception as e:
            print(f'错误信息: {e}')
    
    test_smtp()
    

    把这段代码放到项目里,通过Railway的控制台运行,查看具体报错信息。

  • 换用其他邮件服务试试
    如果以上方法都无效,可能是Google对Railway的IP段有限制。可以换成Google Workspace(企业邮箱),或者用SendGrid、Mailgun这类第三方邮件服务,它们和云平台的兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:16:07