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脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
利用Python读取文件的四种不同方法比对
May 18 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
python使用tornado实现登录和登出
Jul 28 Python
python引入不同文件夹下的自定义模块方法
Oct 27 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
浅析python 中大括号中括号小括号的区分
Jul 29 Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 Python
Python入门基础之数字字符串与列表
Feb 01 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
理解javascript回调函数
2014/12/28 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
Python进程通信之匿名管道实例讲解
2015/04/11 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
慰问信格式规范
2015/03/23 职场文书
电信营业员岗位职责
2015/04/14 职场文书
图书借阅制度范本
2015/08/06 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python