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来旋转图像的教程
Apr 16 Python
python实现下载整个ftp目录的方法
Jan 17 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 Python
python中datetime模块中strftime/strptime函数的使用
Jul 03 Python
使用Python更换外网IP的方法
Jul 09 Python
python实现根据文件关键字进行切分为多个文件的示例
Dec 10 Python
Python selenium根据class定位页面元素的方法
Feb 26 Python
Python3中_(下划线)和__(双下划线)的用途和区别
Apr 26 Python
Python超越函数积分运算以及绘图实现代码
Nov 20 Python
TensorFlow自定义损失函数来预测商品销售量
Feb 05 Python
python中的错误如何查看
Jul 08 Python
Python操作Word批量生成合同的实现示例
Aug 28 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计划任务、定时执行任务的实现代码
2011/04/23 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
使用JS动态显示文本
2017/09/09 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
vue实例的选项总结
2020/06/09 Javascript
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
Python continue语句实例用法
2020/02/06 Python
Python TKinter如何自动关闭主窗口
2020/02/26 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
杭州时比特电子有限公司SQL
2013/08/22 面试题
班风口号
2014/06/18 职场文书
Redis RDB技术底层原理详解
2021/09/04 Redis
python数据可视化使用pyfinance分析证券收益示例详解
2021/11/20 Python
把77A收信机改造成收音机
2022/04/05 无线电