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下自己编写web框架的一些要点
Apr 29 Python
Python类定义和类继承详解
May 08 Python
Python实现队列的方法
May 26 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
Aug 31 Python
深入理解Django的自定义过滤器
Oct 17 Python
Python3之读取连接过的网络并定位的方法
Apr 22 Python
Python3模拟curl发送post请求操作示例
May 03 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Django使用消息提示简单的弹出个对话框实例
Nov 15 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
python实现字符串和数字拼接
Mar 02 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实现文件上传基本验证
2020/03/04 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
JS与C#编码解码
2013/12/03 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Python版中国省市经纬度
2020/02/11 Python
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
园林施工员岗位职责
2013/12/11 职场文书
小学生期末自我鉴定
2014/01/19 职场文书
一年级家长会邀请函
2014/01/25 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL