Django发送邮件实现


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

有备无患

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

评论↓[写评论]


There is nothing!