1. 在settings中添加关键信息
EMAIL_HOST = 'smtp.qq.com' #不同的邮箱有不同的发件地址(收件地址)
EMAIL_PORT = 25 #smtp端口号
EMAIL_HOST_USER = '邮箱' #发件人邮箱
EMAIL_HOST_PASSWORD = '密码' #邮箱密码,其实是授权码
2.在views中导入发邮件相关的包:
from django.shortcuts import render
from django.http import HttpResponse
from django.core.mail import send_mail, send_mass_mail,EmailMultiAlternatives,BadHeaderError
from rest_framework.parsers import JSONParser
3.多种发邮件类型:
a.一封邮件发多人:send_mail,多人在列表里指定
b.多封邮件分别发多人:send_mass_mail,多套放在元组里
c.邮件中添加其他类型的内容:EmailMultiAlternatives、attach_alternative、send,制定了其他格式内容,原内容会被覆盖
4.综合案例:通过httpie等接口测试工具,post传递发邮件所需要的数据,并对逻辑做了处理,httpie默认传递json格式的数据,需要先解析成普通python基本数据类型,再进行操作(可用django自带的json loads dumps,也可用django框架restframework的parsers的JSONParser),导入的BadHeaderError用在请求数据有误时抛出无效的请求头 异常

from django.shortcuts import render
from django.http import HttpResponse
from django.core.mail import send_mail, send_mass_mail,EmailMultiAlternatives,BadHeaderError
from rest_framework.parsers import JSONParser
 
# Create your views here.
 
def test01(request): # 一封邮件多发
send_mail(
'这里是标题',
'内容:天青色等烟雨',
'邮箱',
['邮箱1', '邮箱2'],
fail_silently=False,
 
)
return HttpResponse('OK')
 
 
def test02(request):
datatuple = (
('标题one', '内容one', '邮箱', ['邮箱1', '邮箱2']),
('标题two', '内容two', '邮箱', ['邮箱1', '邮箱2']),
 
)
send_mass_mail(datatuple,fail_silently=False)
return HttpResponse('OVER')
 
def test03(request):
subject,from_email,to = '哈哈主题','邮箱',['邮箱1', '邮箱2']
text_content = '红尘客栈'
html_content = '<h1>红尘客栈风似刀,骤雨落宿命敲</h1>'
msg = EmailMultiAlternatives(subject,text_content,from_email,to)
msg.attach_alternative(html_content,'text/html')
msg.send()
return HttpResponse('html OVER')
 
def sendmail(request):
#用httpie测试接口时,默认传递过来的时json数据,所以需要先解析成python基本数据类型,再操作
if request.method == 'POST':
data = JSONParser().parse(request)
subject = data.get('subject','')
message = data.get('message','')
from_email = data.get('from_email','')
if subject and message and from_email:
try:
send_mail(subject,message,from_email,['邮箱',])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return HttpResponse('success OVER')
else:
return HttpResponse('Make sure all fields are entered and valid.')
return HttpResponse('GETGET')
 
 

Django——邮件发送的更多相关文章

  1. 毕业设计——Django邮件发送功能实现及问题记录

    django发送邮件:send_mail()&send_mass_mail() 自强学堂 刘江的博客 HTTPS,TLS和SSL django发送邮件及其相关问题 步骤 : 0. 登录作为发送 ...

  2. python 项目实战之Django 邮件发送

    发送邮件¶ 虽然 Python 借助 smtplib 模块简化了发送邮件的流程,但是 Django 在其基础上提供了更简化的支持.这些封装意在加快邮件发送,方便在开发时测试发送邮件,在不支持 SMTP ...

  3. django邮件发送

    需要一个邮箱,设置pop3 设置setting EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = ' ...

  4. Django的邮件发送以及云服务器上遇到的问题

    邮件发送 首先我们的邮箱要开通smtp服务,然后就可以在settings中配置了 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBacken ...

  5. django 配置邮件发送 send_email

    导入 send_email 所用方法导入 from django.core.mail import send_mail 因为使用的需要指明 发送人 所以要把 setting.py 中的 EMAIL_F ...

  6. Django之邮件发送

    settings.py #settings 添加如下配置进行邮件发送 #邮件服务器 EMAIL_HOST = "smtp.qq.com" #邮件发送的端口 EMAIL_PORT = ...

  7. Django 邮件推送 解决附件中文名字乱码

    Django邮件功能,详情可看官方文档(https://docs.djangoproject.com/en/1.10/topics/email/). 最近做这个功能时遇到的问题,发送附件,收到后中文名 ...

  8. django邮件

    1.邮件变量 (django settings.py) ADMINS = [('JOHN','JOHN@example.com'),('zhang','zhang@example.com')] #设置 ...

  9. django 邮箱发送

    在django中提供了邮件接口 QQ邮箱配置 qq邮箱地扯:https://mail.qq.com settings文件 # 邮箱配置 EMAIL_USE_SSL = True EMAIL_HOST ...

随机推荐

  1. 跨域 XMLHttpRequest对象

    XMLHttpRequest对象是ajax编程的基础,用于发送请求(数据)与服务端进行交互. 目前主流浏览器都内置了XMLHttpRequest对象. 浏览器会使用XMLHttpRequest对象来创 ...

  2. Nginx安装配置&反向代理

    使用Nginx作为前端服务能够更快更及时的响应静态页面.js.图片等,当客户端请求访问动态页面时由Nginx的反向代理给Apache处理,Apache处理完再交予Nginx返回给客户端. Nginx更 ...

  3. Javascript面向对象编程:非构造函数的继承

    今天是最后一个部分,介绍不使用构造函数实现"继承". 一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Ch ...

  4. JSP中out.print()、out.println()以及out.write()的区别

    out是JSP九大内置对象之一,是JspWriter的一个对象,JspWriter继承了java.io.Writer类. out.print()和out.write() print()和println ...

  5. Morley's Theorem

    题解: 计算几何基本操作 注意叉积的时候字母写的顺序 代码: #include <bits/stdc++.h> using namespace std; #define rint regi ...

  6. zabbix实操随笔

    vmware 9.0安装,vmware tools安装 fedora 15.0安装1G内存以上fedora上基本操作指令1.vmtools 共享文件在linux上安装有问题,出现找不到**.so.1之 ...

  7. c# 调apicontroller

    public string Post(ModelCs mod) { string formData = Newtonsoft.Json.JsonConvert.SerializeObject(mod) ...

  8. sql 表值函数-将一个传入的字符串用2中分隔符拆分成临时表

    USE [tms]GO/****** Object: UserDefinedFunction [dbo].[fn_StrToTable_Double] Script Date: 2017/4/26 9 ...

  9. P2279 [HNOI2003]消防局的设立 贪心or树形dp

    题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地.起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状 ...

  10. element-ui upload组件上传

    方法一: <el-table-column label="操作"> <template slot-scope="scope"> < ...