Django_发送邮件

news2024/11/17 1:52:00

目录

一、开启SMTP服务并获取授权码

二、在Django的配置文件中添加邮箱服务配置

三、发送邮箱代码

源码等资料获取方法


使用django邮箱功能需要搭建smtp服务器,如果没有,可以使用第三方smtp服务器。

本文以第三方QQ邮箱服务器演示如何使用python的smtplib+email完成邮箱发送功能。

一、开启SMTP服务并获取授权码

具体参考email + smtplib使用简介。

二、在Django的配置文件中添加邮箱服务配置

# 设置使用django的smtp配置(固定值)
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# smpt服务地址(根据选择smtp服务器配置)
EMAIL_HOST = 'smtp.qq.com'
# 邮箱端口(在django中是固定值)
EMAIL_PORT = 25
# 发送邮件的邮箱
EMAIL_HOST_USER = '41XXXXX67@qq.com'
# 在邮箱中设置的客户端授权密码(第一步获取的授权码)
EMAIL_HOST_PASSWORD = 'spisXXXXXtbidj'
# 邮箱中显示的发件人(必须与EMAIL_HOST_USER 的值一致)
EMAIL_FROM = '41XXXXX67@qq.com'

三、发送邮箱代码

import os

from dailyfresh import settings
from django.core.mail import EmailMultiAlternatives

# 导入配置django配置文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')

subject = 'Django邮件调试'    # 邮件标题
message = 'test'            # 发送内容
sender = settings.EMAIL_FROM    # 发送人
receiver = ["XXXX@qq.com"]  # 收件人
cc_receiver = ["41XXXXX67@qq.com"]  # 抄送人

_email = EmailMultiAlternatives(subject=subject, body=message, from_email=sender, to=receiver, cc=cc_receiver)
# 添加html内容(注:如果添加了html内容,message的内容不会被发送)
html_msg = "<div><h1>H1标签</h1></div><div><h3>H3标签</h3></div>"
_email.attach_alternative(html_msg, "text/html")

# 添加附件
with open("./test.pdf", "rb") as f:
    content = f.read()
attach_file_name = "attach_file1.pdf"    # 邮箱中显示的附件名称
_email.attach(attach_file_name, content)
# 添加多个附件,多次调用attach方法即可
attach_file_name = "attach_file2.pdf"
_email.attach(attach_file_name, content)

# 发送邮件
_email.send()

接收邮件如下:


源码等资料获取方法

各位想获取源码的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

 

 

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

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

相关文章

从钢铁行业数字化管控平台的智能进化,看超自动化能力边界

文/王吉伟 钢铁行业的数字化转型&#xff0c;历来都是值得探讨的热点话题。 2022年&#xff0c;我国粗钢产量10.13亿吨&#xff0c;占据了全球钢铁供给市场的半壁江山。 这组数据可谓非常抢眼&#xff0c;但仍旧难掩诸多企业的各种经营问题。 钢铁生产过程工序众多&#xf…

CentOS环境下的JDK8安装

CentOS 安装 JDK8 安装JDK8 下载 官网&#xff1a;https://www.oracle.com/java/technologies/downloads/#java8-linux 将下载好的压缩包拷贝到根目录下 通过xshell如果出现 bash: rz: 未找到命令 &#xff0c;需要先运行下面的命令 yum -y install lrzsz解压 tar -zxvf …

ubuntu彻底卸载libreoffice和安装wps

一.卸载libreoffice 1. 打开ubuntu桌面&#xff0c;右键 打开终端 方法一 完全卸载 sudo apt-get remove libreoffice-common 根据提示输入管理员密码&#xff0c;然后根据提示 输入 Y 这样&#xff0c;等待卸载完成。 正常情况下上述命令执行完成后Libreffice的表格、绘图…

DevOps基础服务1——版本控制gitlab

文章目录 一、基本了解1.1 安装git客户端1.2 git命令1.2.1 本地仓库1.2.2 远程仓库 二、安装gitlab三、功能管理3.1 创建账号3.2 用户注册授权通知功能3.3 创建项目远程库3.4 ssh设置3.5 克隆远程库项目到本地3.6 上传本地项目代码到远程库3.7 授权用户查看项目权限 一、基本了…

华为OD机试真题 Java 实现【查找树中元素】【2023 B卷 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、Java算法源码六、效果展示1、输入2、输出 一、题目描述 已知树形结构的所有节点信息&#xff0c;现要求根据输入坐标&#xff08;x,y&#xff09;找到该节点保存的内容值&#xff1b; 其中&#xff1a; x表示节点…

光场1.0——非聚焦型光场相机

本文概要 本文讲主要从光场硬件结构设计以及软件处理方式的层面来介绍一下光场的相关内容&#xff0c;关于光场的优势和具体应用点并不在本文的主要范围内。 光场1.0 1. 结构原理说明 首先来介绍一下光场相机&#xff0c;那么什么是光场相机呢&#xff0c;光场相机经历了两…

c语言实现单链表

#include<stdio.h> #include<malloc.h>typedef struct LNode{double data;struct LNode *next; }LNode,*LinkList;bool InitList(LinkList &L){L(LNode*) malloc(sizeof(LNode));//分配一个头结点 if(LNULL) //内存不足&#xff0c;分配失败 return false;L-&g…

机器学习与深度学习——自定义函数进行线性回归模型

机器学习与深度学习——自定义函数进行线性回归模型 目的与要求 1、通过自定义函数进行线性回归模型对boston数据集前两个维度的数据进行模型训练并画出SSE和Epoch曲线图&#xff0c;画出真实值和预测值的散点图&#xff0c;最后进行二维和三维度可视化展示数据区域。 2、通过…

day68_Vue基础

今日内容 零、 复习昨日 零、 复习昨日 一、Vue简介 1.1 简介 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式的js框架&#xff0c;发布于 2014 年 2 月。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注…

100、基于STM32单片机自动跟随小车 红外遥控控制小车避障模式 跟随模式设计(程序+原理图+PCB源文件+流程图+硬件设计资料+元器件清单等)

绪 论 智能小车通过各种感应器获得外部环境信息和内部运动状态&#xff0c;实现在复杂环境背景下的自主运动&#xff0c;从而完成具有特定功能的机器人系统。而随着智能化电器时代的到来&#xff0c;它们在为人们提供的舒适的生活环境的同时&#xff0c;也提高了制造智能化电器…

系统上线前,SQL脚本的9大坑

前言 系统上线时&#xff0c;非常容易出问题。 即使之前在测试环境&#xff0c;已经执行过SQL脚本了。但是有时候&#xff0c;在系统上线时&#xff0c;在生产环境执行相同的SQL脚本&#xff0c;还是有可能出现一些问题。 有些小公司&#xff0c;SQL脚本是开发自己执行的&am…

React Dva修改路由设置,不要井号

我们Dva项目的路由 他默认是设置了带井号的这种 其实我觉得到还可以 但是有些人会觉得不太美观 如果 你想去除他 那么 你先要在终端执行 npm install --save history将 history 引入进来 装好之后 我们来到src下的 index.js 加上如下代码 import {createBrowserHistory as …

nginx配置例子-反向代理实现

4.1 反向代理实现&#xff08;实例1&#xff09; 4.1.1需要实现的效果 (1)打开浏览器&#xff0c;在浏览器地址栏输入地址 www.123.com&#xff0c;跳转到liunx.系统tomat主页面中 4.1.2 准备工作 (1&#xff09;在liunx, 系统安装 tomcat, 使用默认端口8080. tomcat安装文…

【C++】-vector的具体使用(迭代器失效问题)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

【Nacos】Nacos 2.2.4支持pg数据库适配改造

Nacos 2.2.4支持postgresql数据库 本文基源码&#xff1a;扩展插件包 网上资料都有&#xff0c;还是个人爬坑补充异常处理记录&#xff0c;以便后续升级改造有漏洞修复 下载源码 https://github.com/alibaba/nacos/releases 添加依赖 根pom添加pg依赖 <postgresql.vers…

跨平台轻量级RTSP服务模块设计思路及实现探讨

技术背景 为满足内网无纸化/电子教室等内网超低延迟需求&#xff0c;避免让用户配置单独的服务器&#xff0c;我们发布了轻量级RTSP服务模块&#xff0c;轻量级RTSP服务解决的核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务&#xff0c;实现本地的音视频数据&#xff…

(4)【轨迹优化篇】方法一:基于Frenet车道线坐标系,采用解耦采样五次多项式拟合进行局部规划

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言A、第一章&#xff1a;Frenet车道线坐标系介绍及坐标转换一、frenet坐标系介绍1.Frenet坐标的定义2.ST图&#xff08;纵向速度…

【ARM Coresight 系列文章 3 - ARM Coresight 组件 DAP(Debug Access Port) 介绍】

文章目录 1.1 Debug Access Port1.2 Access Port1.2.1 IDR 寄存器 1.3 Mem-APs 介绍1.3.1 Debug 寄存器访问模型1.3.2 APs 中寄存器的介绍 1.1 Debug Access Port 外部 Debugger(DS-5/Trace32) 会通过JTAG接口或者SWD接口和DAP相连&#xff1a; JITAG 一般是5个pin&#xff1…

JAVA每日一练(1)

【程序1】 题目&#xff1a;古典问题&#xff1a;有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔子长到第三个月后每个月又生一对兔子&#xff0c;假如兔子都不死&#xff0c;问每个月的兔子对数为多少&#xff1f; import java.util.Scanner;/*…

【ElasticSearch】数据聚合语法与Java实现

文章目录 1、聚合的分类2、DSL实现bucket聚合3、DSL实现Metrics 聚合4、RestClient实现聚合5、需求&#xff1a;返回过滤条件的信息6、带过滤条件的聚合 1、聚合的分类 聚合&#xff08;aggregations&#xff09;可以实现对文档数据的统计、分析、运算。&#xff08;类比MySQL…