第十二天-邮件发送

news2025/1/15 13:00:54

目录

发送邮件的流程

邮件的发送协议

smtplib模块

email包

demo

发送html邮箱

发送带附件的邮箱

发送定时邮件schedule模块


发送邮件的流程

邮件的发送协议

  • smtp是邮件的发送协议
  • pop3是邮件的接受协议
  • 协议就是一种规则,已经被底层网络封装好了,无需关心他的具体规则,直接使用上层工具即可

smtplib模块

python自带无需安装

import smtplib

#创建协议对象

smtpObj=smtplib.SMTP()

#创建链接,25端口号

smtpObj.connect(smtp服务器地址,25)

#登录验证

smtpObj.login(mail_user,mail_pass)

#发送邮件

smtpObj.sendmail(sender,receivers,message)

email包

demo

1. 需要注意内容:发生邮箱需要开通smtp与pop3的访问许可,否则发生不出去,每个邮箱开通的方法自行百度,下方只是只是演示了qq邮箱的

2.需要授权码和密码

3.有些邮箱开通可能会收费

# coding:utf-8

import smtplib

from email.mime.text import MIMEText
from email.header import Header

#声明使用邮箱协议,使用qq邮箱
mail_host="smtp.qq.com"
mail_user="2211910447@qq.com"
#qq邮箱授权码获取:1.需要开通smtp>(qq邮箱设置>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务>开启获取授权码)
mail_pass="goxcqlvjgnggdjii"

#定义发送者
sender="2211910447@qq.com"
#定义接受者
receivers=["15837174334@163.com"]

#第一个参数邮件内容,第二个参数:文件类型:plain 普通邮箱 第三个参数:编码
#message=MIMEText("标题-测试","plain","utf-8")
message=MIMEText("<p style='color:red'>标题-测试</p>","html","utf-8")
#定义发送者
message["From"]=Header(sender)
#定义发送内容
message["Subject"]=Header("邮件标题","utf-8")
print("发送邮件内容:",message.as_string())
try:
    smtpobj=smtplib.SMTP()
    smtpobj.connect(mail_host,25)
    smtpobj.login(mail_user,mail_pass)
    smtpobj.sendmail(sender,receivers,message.as_string())
except smtplib.SMTPException as e:
    print("error:",e)

发送html邮箱

.

message=MIMEText("<p style='color:red'>标题-测试</p>","html","utf-8")

发送带附件的邮箱

# coding:utf-8

import smtplib

from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart

#声明使用邮箱协议,使用qq邮箱
mail_host="smtp.qq.com"
mail_user="xxxx@qq.com"
#qq邮箱授权码获取:1.需要开通smtp>(qq邮箱设置>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务>开启获取授权码)
mail_pass=""

#定义发送者
sender="xxxxx@qq.com"
#定义接受者
receivers=["xxxxx@163.com"]

#第一个参数邮件内容,第二个参数:文件类型:plain 普通邮箱 第三个参数:编码
#message=MIMEText("标题-测试","plain","utf-8")
message=MIMEMultipart()
#定义发送者
message["From"]=Header(sender)
#定义发送内容
message["Subject"]=Header("邮件标题","utf-8")

#发送附件
attr=MIMEText(open("send_email.py","rb").read(),"base64","utf-8")
attr["Content-Type"]= "application/octet-stream"
attr["Content-Disposition"]= "attachment;filename='send_email.py'"
message.attach(attr)
message.attach(MIMEText("<p style='color:red'>标题-测试</p>","html","utf-8"))

print("发送邮件内容:",message.as_string())
try:
    smtpobj=smtplib.SMTP()
    smtpobj.connect(mail_host,25)
    smtpobj.login(mail_user,mail_pass)
    smtpobj.sendmail(sender,receivers,message.as_string())
except smtplib.SMTPException as e:
    print("error:",e)

发送定时邮件schedule模块

1. 在特定时间执行的一些内容;

2.安装  pip install schedule

# coding:utf-8

import smtplib
import time

import schedule

from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart

def send():
    #发送邮件代码...

if __name__ == '__main__':
    schedule.every(10).seconds.do(send)

    while 1:
        schedule.run_pending()
        time.sleep(1)

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

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

相关文章

第三节:Vben Admin登录对接后端login接口

系列文章目录 第一节&#xff1a;Vben Admin介绍和初次运行 第二节&#xff1a;Vben Admin 登录逻辑梳理和对接后端准备 文章目录 系列文章目录前言一、Flask项目介绍二、使用步骤1.User模型创建2.迁移模型3. Token创建4. 编写蓝图5. 注册蓝图 三. 测试登录总结 前言 上一节&…

【零基础】VOSviewer小白入门第一课

官网安装&#xff1a;VOSviewer - Visualizing scientific landscapes 安装完成后即可以打开VOSviewer: 在 wos of science 中搜索关键词&#xff1a;lawdata 选择导出&#xff0c;按照plain text file格式导出&#xff0c;可以到处1000个。选择all record 得到下图 读取vosvi…

zabbix监控业务数据

前言 监控系统除了监控os和数据库性能相关的指标外&#xff0c;业务数据也是重点监控的对象。 一线驻场的运维同学应该深有体会&#xff0c;每天需要向甲方或者公司反馈现场的数据情况&#xff0c;正常情况下一天巡检两次&#xff0c;早上上班后和下午下班前各一次。监控项目…

JWT学习笔记

了解 JWT Token 释义及使用 | Authing 文档 JSON Web Token Introduction - jwt.io JSON Web Token (JWT&#xff0c;RFC 7519 (opens new window))&#xff0c;是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准&#xff08;(RFC 7519)。该 token 被设计为紧凑…

国家能源、华能、一汽、中国交建、中国铁塔、中国烟草、中航信托--校园招聘历年题库和真题

作为准备参加国有企业校园招聘的应聘者&#xff0c;掌握相关企业的招聘试题资料是至关重要的。国家能源、华能、一汽、中国交建、中国铁塔、中国烟草、中航信托等知名国有企业在中国经济中扮演着重要的角色&#xff0c;每年都会举行校园招聘活动&#xff0c;吸引大批毕业生和应…

【项目部署上线】宝塔部署前端Docker部署后端

【项目部署上线】宝塔部署前端&Docker部署后端 文章目录 【项目部署上线】宝塔部署前端&Docker部署后端1.安装依赖1.1 安装mysql1.2 安装Canal1.3 安装redis1.4 安装rabbitmq1.5 安装nacos 2. 部署前端3. 部署后端 1.安装依赖 1.1 安装mysql docker run -d -p 3306:3…

面向面试的机器学习知识点(4)——分类模型

省流版&#xff1a; 本文介绍机器学习中的回归算法&#xff1a;逻辑回归、KNN、SVM、随机森林和XGBoost。作为机器学习的有监督学习方法&#xff0c;分类模型是最重要也是最常见的一类算法&#xff0c;在数据分析等岗位的笔试面试中都是常客&#xff0c;非常值得深入研究&…

基于Prony算法的系统参数辨识matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 Prony算法是一种用于信号处理和系统辨识的经典方法&#xff0c;特别适用于线性时不变系统&#xff08;LTI&#xff09;的频率响应分析以及模拟复指数信号序列。其…

特殊文件:XML文件,Properties属性文件【详解】

目录 1.Properties属性文件 2.特殊文件&#xff1a;XML文件 1.Properties属性文件 是一个Map集合&#xff08;键值对集合&#xff09;&#xff0c;但是我们一般不会当集合使用。 核心作用&#xff1a;Properties是用来代表属性文件的&#xff0c;通过Properties可以读写…

【MySQL】学习和总结联合查询

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-OPj5g6evbkm5ol0U {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

FPGA 与 数字电路的关系 - 这篇文章 将 持续 更新 :)

先说几个逻辑&#xff1a;&#xff08;强调一下在这篇文章 输入路数 只有 1个或2个&#xff0c;输出只有1个&#xff0c;N个输入M个输出以后再说&#xff09; 看下面的几个图&#xff1a; 图一&#xff08; 忘了 这是 啥门&#xff0c;不是门吧 &#xff1a;&#xff09;也就…

UE5 C++ TPS开发 学习记录(五)

这节课创建了新的游戏关卡Lobby,制作了属于自己的游戏名字"Match Type",制作了加入游戏会话的委托和函数,最后可以用IP就可以把客户端链接到服务端 .h // Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #incl…

pytest如何在类的方法之间共享变量?

在pytest中&#xff0c;setup_class是一个特殊的方法&#xff0c;它用于在类级别的测试开始之前设置一些初始化的状态。这个方法会在类中的任何测试方法执行之前只运行一次。 当你在setup_class中使用self来修改类属性时&#xff0c;你实际上是在修改类的一个实例属性。在Pyth…

高频面试题整理(二)

文章目录 索引相关问题优化你的索引 密集索引和稀疏索引如何定位并优化慢查询sqlMyISAM与InnoDB 关于锁方面的区别是什么&#xff1f;MyISAMInnoDB事务隔离级别 多线程并发的相关问题Thread中的start和run方法的区别Thread和Runnable是什么关系&#xff1f;如何处理线程的返回值…

【Java程序设计】【C00307】基于Springboot的基Hadoop的物品租赁管理系统(有论文)

基于Springboot的基Hadoop的物品租赁管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的基于 Hadoop的物品租赁系统的设计与实现&#xff0c;本系统有管理员、用户二种角色权限&#xff1b; 前台首页&#…

Xcode与Swift开发小记

引子 鉴于React Native目前版本在iOS上开发遇到诸多问题&#xff0c;本以为搞RN只需理会Javascript开发&#xff0c;没想到冒出CocoaPod的一堆编译问题。所以横下一条心&#xff0c;决定直接进攻iOS本身。不管你是用React Native&#xff0c;还是用Flutter&#xff0c;iOS下的…

记录一些mac电脑重装mysql和pgsql的坑

为什么要重装,是想在mac电脑 创建data目录…同事误操作,导致电脑重启不了.然后重装系统后,.就连不上数据库了.mysql和pgsql两个都连不上.网上也查了很多资料.实在不行,.就重装了… 重装mysql. 1.官网下载 https://www.mysql.com/downloads/ 滑到最下面 选择 选择对应的芯片版本…

python-产品篇-游戏-开心消消乐

文章目录 准备代码效果 准备 安装对应环境库 代码 import pygame import random from pygame.locals import *class SoundPlay:game_bgm "sound/GameSceneBGM.ogg"world_bgm sound/WorldSceneBGM.oggeliminate (sound/eliminate1.ogg, sound/eliminate2.ogg, s…

MATLAB环境下基于洗牌复杂演化的图像分割算法

智能优化算法因其较强的搜索解能力而得到了大量的应用&#xff0c;在这些计算智能算法中&#xff0c;群体智能优化算法因其高效性、有效性以及健壮性等优点而得到了科研人员的青睐。这类算法借鉴生物群体的合作特性&#xff0c;主要解决大规模复杂的分布式问题&#xff0c;研究…

YOLO算法改进Backbone系列之:EfficientViT

EfficientViT: Memory Effificient Vision Transformer with Cascaded Group Attention 摘要&#xff1a;视觉transformer由于其高模型能力而取得了巨大的成功。然而&#xff0c;它们卓越的性能伴随着沉重的计算成本&#xff0c;这使得它们不适合实时应用。在这篇论文中&#x…