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和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 Python
Python文件读取的3种方法及路径转义
Jun 21 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
Nov 07 Python
初步剖析C语言编程中的结构体
Jan 16 Python
python里使用正则表达式的组嵌套实例详解
Oct 24 Python
Python中Scrapy爬虫图片处理详解
Nov 29 Python
Python日志模块logging基本用法分析
Aug 23 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
pip指定python位置安装软件包的方法
Jul 12 Python
对python3中的RE(正则表达式)-详细总结
Jul 23 Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 Python
Python 中的pygame安装与配置教程详解
Feb 10 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递归创建多级目录
2015/11/05 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
linux下php上传文件注意事项
2016/06/11 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
js中Generator函数的深入讲解
2019/04/07 Javascript
python BeautifulSoup使用方法详解
2013/11/21 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
公务员培训自我鉴定
2013/09/19 职场文书
银行职业规划书范文
2013/12/28 职场文书
公路绿化方案
2014/05/12 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书