Django应用程序中如何发送电子邮件详解
作者:安生 发布时间:2023-11-04 02:07:54
标签:django,邮件
前言
在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
打开接收邮件的邮箱看看是否已经接收到邮件了?
同时发送多封电子邮件
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
返回值将是已成功发送邮件的消息数。
来源:https://blog.ansheng.me/article/send-an-e-mail-message-in-the-django-application/


猜你喜欢
- 1、argparse是一个python模块,用途是:命令行选项、参数和子命令的解释。2、使用步骤:导入argparse模块,并创建解释器添加
- php输出文字乱码的解决办法:在php文件最开头写上:<?phpheader('Content-type: text/html
- 这个问题的解决方案网上挺多的。其中我推荐的就是:with open(r"F:\Desktop\Book3.csv",
- REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。语法REPLACE ( ''strin
- 之前在osc看到一个文章讨论Get和Post的不同, 有人说不能用Get来上传文件。这就是用Get上传文件的例子,client用来发Get请
- 页面大小、窗口大小和滚动条位置这三个数值在不同的浏览器例如Firefox和IE中有着不同的实现。即使在同一种浏览器例如IE中,不同版本也有不
- Python之Selenium自动化爬虫0.介绍Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Seleniu
- 关于MySQL的事务隔离级别,相信很多读者都不陌生,网商有很多种相关的文章,很多人对于各种隔离级别,以及不同的级别可以解决的一些读现象都是如
- 具体代码如下所示:import smtplib, email, os, timefrom email.mime.multipart impo
- easy_install 和 pip的介绍:easy_install和pip都是用来下载安装Python一个公共资源库PyPI 的相关资源包
- 本文实例讲述了Java常用正则表达式验证类。分享给大家供大家参考,具体如下:package com.fsti.icop.util.regex
- 这个操作现在看来真没啥难的,但是我找相关的资料真的找了好久。多数大佬都是直接pandas官网甩我脸上,然后举一个入门级的例子。https:/
- 想要一个这玩意,可是找了网上许多着色器,要么是兼容性成问题,要么是匹配不精确,比如说:1、注释里包含字符串、关键词,类似于:/* xxxx&
- 简介Github:https://github.com/spf13/cobraStar:26.5KCobra是一个用Go语言实现的命令行工具
- 最近在改一个页面,原来的编码是gb2312,为了国际化,改成utf-8,开始时浏览还是正常。因为电脑偶感小恙,于是恢复了系统,这才发现改后的
- 对于请求一些网站,我们需要加上请求头才可以完成网页的抓取,不然会得到一些错误,无法返回抓取的网页。下面,介绍两种添加请求头的方法。方法一:借
- 什么是类,对象,实例,类## 标题变量(类属性),实例变量(实例属性)面向对象编程(Object-oriented Programming,
- 最近和Sobin在做一个精品课程的项目,因为用到一个固定的id作为表间关联,所以在前一个表插入数据后要把插入数据生成的自增id传递给下一个表
- 生成一列sum_age 对age 进行累加df['sum_age'] = df['age'].cumsum(
- Python编程语言的优点非常多,它的编程特色主要体现在可扩充性方面。那么,在接下来的这篇文章中,我们将会为大家详细介绍一下有关Python