Django后台邮箱配置

Django可以通过发送邮件的方式找回密码,具体细节可以看Django的文档,这里只介绍在settings.py中如何正确进行邮箱的相关配置。
网上很多教程都说了需要在settings.py里添加如下代码。

EMAIL_HOST = 'smtp.126.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = '***@126.com'
EMAIL_HOST_PASSWORD = '********'
EMAIL_SUBJECT_PREFIX = u'[***]'
EMAIL_USE_SSL = True 

其中EMAIL_HOST需要根据自己使用的邮箱的smtp服务器进行修改,网易126邮箱的smtp服务器是smtp.126.com。EMAIL_PORT也需要根据smtp服务器的端口号进行配置,网上很多教程用的是25(默认值就是25),而我用465配置成功。EMAIL_USE_SSL(默认为False)设置为True表示与SMTP服务器通信时使用隐式TLS连接。其实还有另外一种显式的TLS连接,可以通过EMAIL_USE_TLS(默认为False)设置。EMAIL_USE_SSL和EMAIL_USE_TLS互斥,只能有一个设置为True,通常SSL连接使用的是465端口,而TLS连接使用的是587端口。EMAIL_SUBJECT_PREFIX是邮件主题的前缀。
但是这样设置以后在具体应用过程中还是出现了问题,问题截图为:
Django后台邮箱配置
错误信息显示(553, b'Mail from must equal authorized user', 'webmaster@localhost')。这是因为settings.py中还需要配置DEFAULT_FROM_EMAIL。这个参数设置的是用于来自站点管理员的各种自动通信的默认电子邮件地址。这样默认通信的电子邮件地址就和我们登录SMTP服务器所使用的地址一致了。

DEFAULT_FROM_EMAIL = '***@126.com' # 和EMAIL_HOST_USER一样

这样Django就可以发送邮件了。
详见 http://python.usyiyi.cn/documents/django_182/ref/settings.html#email-backend

上一篇:关于git的认证方式


下一篇:FPGA合成编码