Django应用程序中如何发送电子邮件详解


Posted in Python onFebruary 04, 2017

前言

在Django应用程序中发送电子邮件最常见的用例是密码重置、帐户激活和发送与您的应用程序相关的一般通知。下面来看看详细的介绍吧。

配置Django发送电子邮件

要配置您的Django应用程序,添加下面的参数到你settings.py:

# 主机
EMAIL_HOST = "smtp.sina.com"
# 端口
EMAIL_PORT = 25
# 发件人邮箱
EMAIL_HOST_USER = "anshengme@sina.com"
# 密码
EMAIL_HOST_PASSWORD = "ansheng.me"
# 是否使用https
EMAIL_USE_TLS = False
# 发件人
EMAIL_FROM = "安生"

发送邮件

先看看send_mail()方法提供了那些参数:

参数 描述
subject 邮件标题
message 邮件正文
from_email 发送者
recipient_list 收件人列表
fail_silently 布尔值,
auth_user 用于向SMTP服务器进行身份验证的可选用户名,如果未提供此项,Django将使用EMAIL_HOST_USER设置的值
auth_password 用于向SMTP服务器进行身份验证的可选密码,如果未提供此项,Django将使用EMAIL_HOST_PASSWORD设置的值
connection 用于发送邮件的可选电子邮件后端,如果未指定,将使用默认后端的实例
html_message 如果提供了html_message,则生成的电子邮件将是一个多部分/替代电子邮件,其消息为text/plain内容类型,html_message为text/html内容类型。

然后我们进入带django shell环境变量的python解释器,然后发送一个邮件试试?

$ python3 manage.py shell
In [1]: from django.core.mail import send_mail
In [2]: send_mail("这是邮件标题", "这是邮件主体", 'anshengme@sina.com', ['ianshengme@gmail.com'])
# 返回值将是成功传递的消息的数量(可以是0或1,因为它只能发送一个消息)
Out[2]: 1

打开接收邮件的邮箱看看是否已经接收到邮件了?

Django应用程序中如何发送电子邮件详解

同时发送多封电子邮件

send_mass_mail()所提供的参数值

属性 描述
datatuple 接收一个一个元组,每个元素都是(subject, message, from_email, recipient_list)这种格式

小栗子

In [1]: message1 = ("这是第一封邮件标题", "这是第一封邮件主体", 'anshengme@sina.com', ['ianshengme@gmail.com'])
In [2]: message2 = ("这是第二封邮件标题", "这是第二封邮件主体", 'anshengme@sina.com', ['ianshengme@gmail.com'])
In [3]: from django.core.mail import send_mass_mail
In [4]: send_mass_mail((message1,message2),fail_silently=False)
Out[4]: 2

返回值将是已成功发送邮件的消息数。

Django应用程序中如何发送电子邮件详解

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python数据结构之二叉树的建立实例
Apr 29 Python
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
python 使用get_argument获取url query参数
Apr 28 Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 Python
Python实现通过解析域名获取ip地址的方法分析
May 17 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
Mar 01 Python
在python中list作函数形参,防止被实参修改的实现方法
Jun 05 Python
pytorch MSELoss计算平均的实现方法
May 12 Python
Python算法应用实战之栈详解
Feb 04 #Python
Python算法应用实战之队列详解
Feb 04 #Python
python模块之re正则表达式详解
Feb 03 #Python
Python用threading实现多线程详解
Feb 03 #Python
win10环境下python3.5安装步骤图文教程
Feb 03 #Python
python strip() 函数和 split() 函数的详解及实例
Feb 03 #Python
利用python画一颗心的方法示例
Jan 31 #Python
You might like
扩展你的 PHP 之入门篇
2006/12/04 PHP
PHP令牌 Token改进版
2008/07/18 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
详解Python中的各种函数的使用
2015/05/24 Python
python决策树之C4.5算法详解
2017/12/20 Python
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
父母寄语大全
2014/04/12 职场文书
初中班主任评语
2014/04/24 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
九年级历史教学反思
2016/02/19 职场文书
详解nodejs内置模块
2021/05/06 NodeJs
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫