Django发送邮件实现
发送邮件功能在不少场景下需要使用到,在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 = '[email protected]' #你的发件用户
EMAIL_HOST_PASSWORD = 'xxxxxxx' #你获取到的授权码
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER #默认发件用户
发送邮件
具体发送的代码
# send_mail的参数分别是 邮件标题,邮件内容,发件箱(settings.py中设置过的那个),收件箱列表(可以发送给多个人),失败静默(若发送失败,报错提示我们)
mailmsg=send_mail("标题", "邮件正文", '[email protected]',['[email protected]',"[email protected]"], fail_silently=False)