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自动化测试实例解析
Sep 28 Python
30分钟搭建Python的Flask框架并在上面编写第一个应用
Mar 30 Python
python超简单解决约瑟夫环问题
May 12 Python
详解Python中的strftime()方法的使用
May 22 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
关于Python的一些学习总结
May 25 Python
python3使用matplotlib绘制条形图
Mar 25 Python
pytorch获取vgg16-feature层输出的例子
Aug 20 Python
Python中的流程控制详解
Feb 18 Python
python实现监听键盘
Apr 26 Python
PyTorch device与cuda.device用法
Apr 03 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
使用PHP的日期与时间函数技巧
2008/04/24 PHP
php 正则 过滤html 的超链接
2009/06/02 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
php求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
javascript multibox 全选
2009/03/22 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
浅析js封装和作用域
2013/07/09 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
详解js闭包
2014/09/02 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
业务经理岗位职责
2013/11/11 职场文书
售后主管岗位职责
2013/12/08 职场文书
小学生考试获奖感言
2014/01/30 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
Java死锁的排查
2022/05/11 Java/Android