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 相关文章推荐
Python3基础之list列表实例解析
Aug 13 Python
跟老齐学Python之玩转字符串(1)
Sep 14 Python
跟老齐学Python之有容乃大的list(4)
Sep 28 Python
Python实现比较两个文件夹中代码变化的方法
Jul 10 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
python中字符串的操作方法大全
Jun 03 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
PyQt QCombobox设置行高的方法
Jun 20 Python
在pycharm中显示python画的图方法
Aug 31 Python
python查看数据类型的方法
Oct 12 Python
python深copy和浅copy区别对比解析
Dec 26 Python
Python实现排序方法常见的四种
Jul 15 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
JavaScript 的继承
2011/10/01 Javascript
jquery 笔记 事件
2011/11/02 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
基于canvas实现手写签名(vue)
2020/05/21 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
opencv3/C++ 平面对象识别&透视变换方式
2019/12/11 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
Python 在函数上添加包装器
2020/07/28 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
2021/01/29 Python
会走路的树教学反思
2014/02/20 职场文书
商务英语广告词大全
2014/03/18 职场文书
爱之链教学反思
2014/04/30 职场文书
捐书活动总结
2014/05/04 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
三方协议书
2015/01/27 职场文书
学校端午节活动总结
2015/02/11 职场文书
React-vscode使用jsx语法的问题及解决方法
2021/06/21 Javascript
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
Java 死锁解决方案
2022/05/11 Java/Android
V Rising 服务器搭建图文教程
2022/06/16 Servers