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. zabbix 3.2.4 使用详解

    一:zabbix简介及原理 二:zabbix添加主机: /usr/share/zabbix/include/locales.inc.php   #这里为zabbix语言包路径‘zh_CN’ 为true ...

  2. 我的第一个Java程序和Java简介

    public calss HelloWorld{ public static void main(String[] args){ System.out.println("Hello Worl ...

  3. 437. 路径总和 III

    方法一:48 ms /* sumUp递归子程序求解以root为根节点的子节点之和为sum的路径数目; pathSum递归部分是把根节点逐一考察,如以root->left,以root->ri ...

  4. JCenter下载太慢, jcenter修改 https为http也许能帮助你

    今天导入一个工程到studio,一直卡在下载那块. 看到下载地址是:https://jcenter.bintray.com/........https!!!! 到浏览器下载,果然也下载不下来.. 于是 ...

  5. [转] jQuery的deferred对象详解

    jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本. 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象. ...

  6. curl请求https请求

    function curl_https($url,$data){ $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $url ); curl_se ...

  7. JSP基础知识➣获取参数和过滤器(四)

    JSP表单提交和参数获取 JSP表单提交的两种方式:post和get,通过这两种方式提交的参数到后台,获取参数的值主要由request来处理,获取值的方式有以下几种: getParameter():  ...

  8. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-9项目各种全局帮助类

    本文目录 1.  前沿2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装3.XmlHelper快速操作xml文档4.SerializationHe ...

  9. YII框架增删改查常用语句

    //实例化db $db = new \yii\db\Query(); //插入 $db->createCommand()->insert('user', [ 'name' => 't ...

  10. AtCoder Regular Contest 100 (ARC100) E - Or Plus Max 其他

    原文链接https://www.cnblogs.com/zhouzhendong/p/9251448.html 题目传送门 - ARC100E 题意 给定一个正整数 $n(n\leq 18)$. 然后 ...