通过Django发送邮件

news2024/11/19 1:52:29

通过Django发送邮件非常的简单,在Python中已经内置了一个smtplib邮件发送模块,Django在此基础上进行了简单地封装,我们可以在Django的环境中方便的发送邮件。大部分邮件发送成功主要是邮件的参数配置,本文以常用的126邮箱和QQ邮箱为例介绍Django发送邮件的配置,其他提供smtp邮件服务的邮箱都是一样的。

一、Django邮件配置

用Django发送邮件需要告诉你的邮件服务器相应的参数配置,需要在settings.py中进行配置好。
默认情况下,使用配置文件中的EMAIL_HOSTEMAIL_PORT设置SMTP服务器主机和端口,EMAIL_HOST_USER
EMAIL_HOST_PASSWORD是用户名和密码。如果设置了EMAIL_USE_TLS和EMAIL_USE_SSL,它们将控制是否使用相应的加密链接。
典型的配置如下:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.126.com'      #126邮箱的邮箱服务地址
EMAIL_PORT = 25          #端口,大部分都是默认25
EMAIL_HOST_USER = 'yourmail@126.com'    #这里是你的邮箱账号
EMAIL_HOST_PASSWORD = 'yourpassword'   #注意这里不能用你邮箱账号的密码,而要用申请的设备授权码。

这里要注意的两个地方,一个是EMAIL_PORT端口、一个是EMAIL_HOST_PASSWORD密码。
端口一般默认是25,但有些邮箱改了默认端口或需要用加密链接465、578端口,可以从邮件服务商查到。
密码以前可以用邮箱账号密码,但这几年随着安全要求的提高,大部分主要的邮件服务提供商都要用申请的授权码进一步加强安全系数。
这里介绍这些关键的信息如何在邮件服务商获取。

注意EMAIL_HOST_PASSWORD这里不能用你邮箱账号的密码,而要用申请的设备授权码。

126邮箱

进入到邮箱配置界面,点击“POP3/SMTP/IMAP”,注意要开启SMTP。
126邮箱配置界面

授权码是用于登录第三方邮件客户端的专用密码,点击"新增授权密码",降会弹出一个账号安全验证,扫描后可以快速的发短信。
账号安全验证界面

用你的注册手机发完短信后点击"我已发送"就会弹出一个授权码的窗口,要把这个授权码记下来,这个窗口只显示一次。
授权码显示界面

QQ邮箱

进入到QQ邮箱WEB界面后点击“设置”,点击“邮件设置”的“账户”页签拉到“账户安全”处就可以看到相关的SMTP服务信息

QQ邮箱配置界面

点击“生成授权码”,将弹出验证密保的界面。
验证密保界面
根据提示发送短信后,点击我已发送,将会弹出生成授权码的界面显示授权码。
授权码生成界面

如果需要SSL加密方式,可以进一步查看服务商的SMTP服务说明
如QQ邮箱的服务说明 https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=331
服务说明界面

看到使用SSL,端口号是465或587

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'  #QQ邮箱的smtp服务器
EMAIL_PORT = 465           #端口为465或587
EMAIL_USE_SSL = True    #SSL加密方式设置为True
EMAIL_HOST_USER = 'yourmail@qq.com'     #这里是你的邮箱账号
EMAIL_HOST_PASSWORD = 'yourpassword'   #注意这里不能用你邮箱账号的密码,而要用申请的设备授权码。

二、测试发送邮件

可以用django的环境在shell中测试。

python manage.py shell
from django.core.mail import send_mail
send_mail('test','this is test mail','yourmail@qq.com',['yourmail@126.com','yormail@qq.com'])

在这里插入图片描述

如果反回1就表示发送成功了, 查收邮件到达。

如果发送不成功,请仔细核对邮箱服务的相关配置,一般来说与django无关。


博客地址:http://xiejava.ishareread.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《2022中国数据智能产业图谱3.0版》重磅发布

‍数据猿出品本次“数据猿行业盘点季大型主题策划活动——《2022中国数据智能产业图谱3.0版》”为2022年度图谱版本的升级更新版,下一次版本迭代将于2023年4月底发布2023年1.0版,敬请期待,欢迎报名。‍数据智能产业创新服务媒体——聚焦数智 …

svn修改提交日志信息

参考:唐小码个人博客 一、svn修改提交的msg信息和作者信息 鼠标右键找到show log> 选择要修改的日志行,第一个是修改作者信息,第二个是修改日志信息 二、svn修改提交的日期信息 修改日期信息的话,你得先有svn服务器的权限&…

光电接收的TIA设计

APD的光电接收电路如下图所示,APD的光电流较SiPM是小很多的,所以需要TIA来做跨阻放大,一般RF电阻要5k到10k左右,光电流一般也就几十uA,这个跨阻放大主要是对Cf大小的选择,Cf的选择主要考虑下面的两点。从放…

【基础强训】day4

一、选择题 &#x1f308;第1题 有以下程序 #include<iostream> #include<cstdio> using namespace std; int main(){ int m0123, n123; printf("%o %o\n", m, n); return 0; } 程序运行后的输出结果是&#xff08;&#xff09; A 0123 0173 B 01…

汇聚数据库创新力量,加速企业数字化转型

2022年12月29日&#xff0c;以“汇聚数据库创新力量&#xff0c;加速企业数字化转型”为主题的openGauss Summit 2022在线上举行。会上&#xff0c;openGauss社区理事会理事长江大勇对外公布了最近社区及生态进展&#xff0c;并宣布推出资源池化架构&#xff0c;实现软硬融合&a…

人脸识别实战教程

人脸识别实战教程 本教程介绍如何使用Alibaba Cloud SDK for Java进行人体属性识别、人体计数和人脸搜索任务。 背景信息 人脸人体识别技术是基于阿里云深度学习算法&#xff0c;结合图像或视频的人脸检测、分析、比对以及人体检测等技术&#xff0c;为您提供人脸人体的检测…

【Java语言】— 运算符、案例:键盘录入

目录运算符1.算术运算符案例&#xff1a;数值拆分2.“”做连接符3.自增自减运算符自增自减的使用事项自增自减的案列4.赋值运算符基本赋值运算符&#xff1a;“”扩展赋值运算符&#xff1a;“”、“-”、“*”、“/”5.关系运算符6.逻辑运算符短路逻辑运算符总结7.三元运算符三…

DAS和NAS

对于有大量数据存储需求的人群可能都听过NAS或者DAS&#xff0c;由两者演化出来的产品也各有不同&#xff0c;但是两者的真正的区别是什么、各有哪些优势和劣势、分别适用哪些人群一直以来也是困扰大家的问题。 DAS全称为直接附加存储(Direct Attached Storage&#xff0c;DAS…

安全用电守护卫士,同为(TOWE)带漏电保护功能桌面PDU插座

随着人民生活水平的提高&#xff0c;人们日常对电的需求量越来越高&#xff0c;尤其是在隆冬季节&#xff0c;很多居民冬季采用电炉、电热毯和空调等取暖&#xff0c;用电负荷较大&#xff0c;一旦出现漏电、过载、短路等问题&#xff0c;很容易引发火灾。据了解&#xff0c;大…

【机器学习】特征工程:时间特征构造以及时间序列特征构造(含源代码理解)

目录&#xff1a;特征工程—时间特征构造以及时间序列特征构造一、前言二、特征构造介绍三、时间特征构造3.1 连续值时间特征3.2 离散值时间特征3.2.1 时间特征拆解3.2.2 时间特征判断3.2.3 结合时间维度的聚合特征四、时间序列特征构造4.1 时间序列聚合特征4.2 时间序列历史特…

PoolFormer实战:使用PoolFormer实现图像分类任务(一)

摘要 论文&#xff1a;https://arxiv.org/abs/2111.11418 论文翻译&#xff1a;https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/128281326 官方源码&#xff1a;https://github.com/sail-sg/poolformer 模型代码解析&#xff1a;https://blog.csdn.net/hhhhhhhh…

超店有数给新手Tik Tok选品的三个建议

给新手Tik Tok选品的三个建议 1)避开饱和的红海类目 比如食品类、美妆个护类的产品&#xff0c;因为竞争过于激烈&#xff0c;一般都是有经验的大卖家操作运营&#xff0c;因为他们会有稳定的供应链、以及足够的成本去支撑&#xff0c;短期盈利比较难&#xff0c;也就是为什么…

企业电子招投标采购系统源码之登录页面

信息数智化招采系统 服务框架&#xff1a;Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构&#xff1a;VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术&#xff1a;Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stre…

(八)大白话MySQL通过配置多个Buffer Pool来优化数据库的并发性能

文章目录1、多线程在访问Buffer Pool的时候需要加锁吗&#xff1f;2、多线程并发访问会加锁&#xff0c;数据库的性能还能好吗&#xff1f;3、MySQL的生产优化经验&#xff1a;多个Buffer Pool优化并发能力100、创作不易&#xff0c;更多章节&#xff0c;请扫码关注&#xff0c…

学而不固,择善固之-杰克教诲

学而不固,择善固之 我也是第一次知道这个词&#xff0c;是受“杰克”大佬教诲。2022-12-30 解释一 学习有时候不是为了马上用起来&#xff0c;有时候只是让我们不再固执&#xff0c;通过学习知道原来世界上还有这么一说&#xff0c;对很多事情保有好奇心。 不持成见地学习&…

spring中为什么要三级缓存?二级不行吗

这是我看过视频中最能解释的文字表达了 先说bean的创建过程&#xff1a;实例化->依赖注入->初始化 实例化之后会提前暴露到缓存&#xff0c;用于解决循环依赖问题。 以下的解释保证你能看懂&#xff1a; 为什么需要一级缓存ioc容器 总得有个地方放那些单例吧 为什么需…

【决策树】简单介绍+个人理解(一)

∙\bullet∙ 分类模型中除了贝叶斯决策规则&#xff0c;SVM&#xff0c;最近邻分类器&#xff0c;还有决策树 ∙\bullet∙ 决策树就是选一个属性&#xff0c;根据属性的不同取值&#xff0c;将样本划分为不同的类&#xff0c;不断重复下去&#xff0c;直到终止。在叶子节点处&a…

支持图文公式混排的题库软件,Word试卷直接入库

试卷电子化的难题是入库难&#xff0c;只有试卷入库&#xff0c;才能做到后续的监督&#xff0c;复习&#xff0c;错题本等功能。 目前题库软件众多&#xff0c;但大多数题库软件仅支持纯文本题库&#xff0c;而很多试卷都是包括公式&#xff0c;图形&#xff0c;排版复杂。 …

中国外文局文化传播中心借力vLive虚拟直播,打造国际汉文化云讲堂

文明因多样而交流&#xff0c;因交流而互鉴&#xff0c;因互鉴而发展。 近日&#xff0c;中国外文局文化传播中心组织的“中华文化国际传播云讲堂”活动成功举办&#xff0c;本次云讲堂以“世界汉学家看中国文化”为主题&#xff0c;邀请世界汉学家共同探讨汉文化&#xff0c;…

【Git】一文带你入门Git分布式版本控制系统(创建合并分支、解决冲突)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端 &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;秋招&#xff09; &#x1f680;未…