Django通过163发送邮件相关设置

  • 2019年4月20日 09:46
  • teddy
  • 331阅读
  • 0评论

使用django-allauth来支持用户注册、登录、第三方登录等,其中要对用户注册 时使用的邮箱进行认证,涉及需要对Django收发邮件进行设置,采用了下面的几个步骤:

settings.py中的设置

# 邮件服务器
EMAIL_HOST = os.getenv('TPLOVE_EMAIL_HOST', 'smtp.163.com') 
# 账户
EMAIL_HOST_USER = os.getenv('TPLOVE_EMAIL_HOST_USER', 'your-email-address')
# 授权码
EMAIL_HOST_PASSWORD = os.getenv('TPLOVE_EMAIL_HOST_PASSWORD', '授权码') # 非密码,授权码
# 端口
EMAIL_PORT = os.getenv('TPLOVE_EMAIL_PORT', 25)
# 超时
EMAIL_TIMEOUT = 5

设置163账号,允许使用授权码登录

要在Django中使用163的授权码设置收发邮件,首先163邮箱必须绑定手机。

  • 打开账户页面 账户管理
  • 选择管理页面中的授权码设置项

账户管理页面 - 设置授权码后,填到前面的EMAIL_HOST_PASSWORD

授权码所在位置

解决Django邮件SMTP 553 错误

设置完上面几点后出现如下错误: smtplib.SMTPSenderRefused at:(553, b'Mail from must equal authorized user', 'webmaster@localhost')

上网查询,了解到使用Django发邮件时,必须设置DEFAULT_FROM_EMAIL且内容和EMAIL_HOST_USER一样。 于是补充下面的设置后就行了。

DEFAULT_FROM_EMAIL = os.getenv('TPLOVE_EMAIL_HOST_USER', 'your-email-address')
    0人参与|共 0 条评论
    还没有评论呢