django发送邮件

目录

1、首先在浏览器打开qq邮箱进行登录,登录。链接:https://mail.qq.com/

2、进入到设置。注:登录之后会出现下面两种界面的其中一种

 3、进入设置后

4、配置setting.py文件

5、在views.py视图文件导入发送邮件的类

  6 编写视图函数


这篇文章以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('发送失败')
    

注:记得配置路由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值