在Django中发送邮件确认遭Google拒绝,求非低安全应用替代方案
Django发送邮件535认证错误的替代解决办法
使用Google应用专用密码
若你的Google账号开启了两步验证,普通密码无法通过SMTP认证,需生成应用专用密码替代:- 登录Google账号安全设置页面
- 找到「应用专用密码」选项(需两步验证已启用)
- 生成一个针对Django的专用密码,替换
settings.py中的EMAIL_HOST_PASSWORD
通过Gmail API发送邮件
绕开SMTP密码验证,使用API调用发送:- 在Google Cloud控制台创建项目,启用Gmail API并获取服务账号密钥
- 安装依赖库:
pip install django-smtp-api - 修改Django配置:
EMAIL_BACKEND = 'smtpapi.backends.SMTPAPIBackend' SMTPAPI_KEY = '你的服务账号密钥内容' SMTPAPI_FROM_EMAIL = 'your-account@gmail.com'
切换至第三方邮件服务
专业邮件服务(如SendGrid、Mailgun、Postmark)比Gmail SMTP更稳定,且无需处理Google的安全限制:
以SendGrid为例:- 注册账号并获取API密钥
- 安装依赖:
pip install django-sendgrid-v5 - 配置
settings.py:EMAIL_BACKEND = "sendgrid_backend.SendgridBackend" SENDGRID_API_KEY = "你的SendGrid API密钥" DEFAULT_FROM_EMAIL = 'your-email@example.com'
核对Django邮件配置细节
确认配置无拼写或参数错误:EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = '你的完整Gmail邮箱地址' EMAIL_HOST_PASSWORD = '正确的应用专用密码'注意:确保邮箱账号未被Google限制,且TLS/端口设置符合要求。
内容的提问来源于stack exchange,提问作者Solomon
相关产品推荐
相关产品推荐

