django -- 邮件发送


一旦有个留恋,就不算是旅行者了


说明

趁着有空,就想着把很久以前就像弄的邮件功能给加到博客评论上面,发现资料说Django已经有自带的邮件功能了,就在获取客户端服务器的问题上跳了点坑


配置

  • settings 中配置好相关变量信息
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_SSL = True # 这两个必须互斥,只能一个为真
EMAIL_USE_TLS = False
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = '13160724868@163.com'
SERVER_EMAIL = '13160724868@163.com'
EMAIL_HOST_PASSWORD = '*********'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

163免费邮箱客户端

有一个比较坑的地方在于 EMAIL_HOST_PASSWORD 的值不是登录 163 邮箱的密码,而是授权码,不然会报错 SMTPAuthenticationError

获取授权码

然后就可以直接在需要发送邮件的地方直接调用函数实现功能了

# 评论后发送邮件
send_mail(
    '博客有新评论',
    '评论者:\n' + comment.user_name + '\n\r评论内容:\n' + comment.text + '\n\r评论者邮箱:\n' + comment.user_email,
    '13160724868@163.com',
    ['2608927151@qq.com']
)

参数分别为 主题,内容,发件人,收件人集合(可多个)


参考

https://blog.csdn.net/Creabine/article/details/53857826 https://my.oschina.net/chenmoxuan/blog/1835322 https://my.oschina.net/chenmoxuan/blog/1835322