Django发送邮件
2019年8月11日 13:42 Python Web之Django 0评论

发送邮件功能在不少场景下需要使用到,在Django中实现这个功能相对其他语言或框架而言是非常简单的,接下来就来看一下具体的实现步骤。

有备无患

再使用之前,先确定你要使用的邮箱是什么邮箱,是qq的还是163的还是其他,一般需要到相对应的有相中找到授权码,一般是不支持直接使用邮箱密码的,授权码用来替代密码。
在者就是这里使用的是SMTP协议来进行发件,因此需要开启邮箱的相对应的服务。授权码和SMTP服务开启如下图:
QQ邮箱:

服务器名称 服务器地址 SSL端口 非SSL端口
imap imap.qq.com 993 143
smtp smtp.qq.com 465或587 25
pop pop.qq.com 995 110

163邮箱:


服务器名称 服务器地址 SSL端口 非SSL端口
imap imap.163.com 993 143
smtp smtp.163.com 465或587 25
pop pop.163.com 995 110

settings.py配置

首先是settings.py的配置,需要配置邮箱的一些参数,这里的配置实质上是对发件箱的配置,这些配置一般何在一些邮箱客户端中的配置相似。

EMAIL_HOST= 'smtp.163.com' #163邮箱的服务器
#EMAIL_HOST= 'smtp.qq.com' #qq邮箱的服务器
EMAIL_USE_TLS = True
#EMAIL_USE_SSL = True #安全协议,与EMAIL_USE_TLS二选其一,只能有一个是True
EMAIL_PORT= 25  #具体端口见上一步,注意是否将EMAIL_USE_SSL设置为True,如果是就是SSL端口,否就是非SSL端口
EMAIL_HOST_USER = 'xxxxxx@xx.com' #你的发件用户
EMAIL_HOST_PASSWORD = 'xxxxxxx' #你获取到的授权码
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER  #默认发件用户

发送邮件

具体发送的代码

# send_mail的参数分别是  邮件标题,邮件内容,发件箱(settings.py中设置过的那个),收件箱列表(可以发送给多个人),失败静默(若发送失败,报错提示我们)
    mailmsg=send_mail("标题", "邮件正文", 'xxxxx@xx.com',['xxx1@xx.com',"xxx2@xx.com"], fail_silently=False)
评论
暂无评论。