目录
1、首先在浏览器打开qq邮箱进行登录,登录。链接:https://mail.qq.com/
这篇文章以QQ邮箱发送邮件为例。
1、首先在浏览器打开qq邮箱进行登录,登录。链接:https://mail.qq.com/
2、进入到设置。注:登录之后会出现下面两种界面的其中一种
第一张的设置已标出
第二张的设置在下图的位置
3、进入设置后
如果是第一张图开启POP3/SMTP服务
根据提示,短信验证成功后会出现密钥,讲密钥复制粘贴保存很重要!!!
如果是第二张图找到第三方服务
把IMAP/SMTP服务开启生成授权码
根据提示,验证成功后会出现授权码,讲授权码复制粘贴保存很重要!!!
4、配置setting.py文件
EMAIL_BACKEND = 'django.core.mail.backend.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'#发送邮箱的地址,因为我用的是qq邮箱所以是qq邮箱的服务器地址
EMAIL_PORT = 25 #端口号
EMAIL_HOST_USER = ''#发送消息邮箱即开通服务的邮箱
EMAIL_HOST_PASSWORD = ''#密钥或授权码
EMAIL_FORM = ''#来路邮箱和EMAIL_HOST_USER同一个
5、在views.py视图文件导入发送邮件的类
form django.core.mail import send_mail
send_mail(subject,message,from_email,recipient_list,fail_silently=False,auth_user=None,auth_password=None)
参数:subject、message、 from_email、recipient_list为必须的
(1)、subject:邮箱的主题
(2)、message:发送的内容
(3)、from_email:发送邮件的名称
(4)、recipient_list:是个列表,每一项都是一个邮箱地址,是邮件的收件地址
(5)、fail_silently:
一个布尔值。若为
False
,
send_mail()
会在发生错误时抛出
smtplib.SMTPException
。可在
smtplib
文档找到一系列可能的异常,它们都是 SMTPException 的子类。
(6)、
auth_user:
可选的用户名,用于验证登陆
SMTP
服务器。 若未提供,
Django
会使用
EMAIL_HOST_USER
指定
的值。
(7)、
auth_password:
可 选 的 密 码 , 用 于 验 证 登 陆
SMTP
服 务 器 。 若 未 提 供 ,
Django
会 使 用
EMAIL_HOST_PASSWORD 指定的值。
(8)、connection:
可选参数,发送邮件使用的后端。若未指定,则使用默认的后端。
(9)、html_message:
若提供了
html_message
,会使邮件成为
multipart/alternative
的实例,
message
的内容类型则是
text/plain ,并且
html_message
的内容类型是
text/html
。
(10)、返回值会是成功发送的信息的数量(只能是
0
或
1
,因为同时只能发送一条消息)
6 编写视图函数
import re
from django.shortcuts import HttpResponse
from django.core.mail import send_mail
def gerCode(request):
email = request.GET.get('email')#get传参,接收收件邮箱
if not re.match(r"^\w+[-_.]*[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$",emali):
#判断邮箱格式是否符合,不符合停止
return HttpResponse('邮箱不符合格式')
isturn = send_email('这是验证码','这是我发送的消息',[email],fail_silently=False)
if isturn:
return HttpResponse('发送成功')
else:
return HttpResponse('发送失败')
注:记得配置路由