Python 自动化之收发邮件(一)
imapclient / smtplib 收发邮件
文章目录
- imapclient / smtplib 收发邮件
- 前言
- 一、基本内容
- 二、发送邮件
- 1.整体代码
- 三、获取邮件
- 1.整体代码
- 总结
前言
简单给大家写个如何用Python进行发邮件和查看邮件教程,希望对各位有所帮助。
一、基本内容
本文主要分为两部分,内容不多很快就能看完。
- 使用smtplib库发邮件。
- 使用imapclient获取邮件。
二、发送邮件
1.整体代码
代码如下:
import smtplib# 设置服务器的地址和端口
smtpobj = smtplib.SMTP_SSL('smtp.163.com', 465)# 向邮件服务器打招呼,建立连接必不可少的一步
smtpobj.ehlo()# 登录到smtp服务器
smtpobj.login('xxxxxx@163.com', 'LSKEFHPOxxxxxJW')# 163邮箱给qq邮箱发送邮件
smtpobj.sendmail('xxxxxxxx@163.com', 'xxxxxxx@qq.com', 'Subject: test message\nhello,this is a test message')# 从smtp服务器断开
smtpobj.close()
- 第一步:先import一下库。
- 第二步:设置邮箱服务器的地址和端口,这里采用SMTP_SSL加密模式进行传输。
- 第三步:向邮件服务器打招呼,建立连接必不可少的一步(在使用SMTP对象发送邮件之前,需要先调用 ehlo() 或者 helo() 方法向服务器进行身份验证)。
- 第四步:输入邮箱账号和授权码 (注意不是登录用的密码)进行登录。
- 第五步:输入三个参数,一是要发送邮件的地址;二是接收邮件的地址;三是编写发送内容(Subject: test message\n:是邮件主题,hello,this is a test message:是邮件正文)。
- 第六步:断开服务器连接。
三、获取邮件
1.整体代码
代码如下:
import imapclient
import pprint# 设置邮箱服务器的接收地址和端口
imap0bj = IMAPClient("imap.163.com", ssl=True, port=993)# 登录到imap服务器
imap0bj.login("xxxxxx1@163.com", "LSKEFHPOVxxxxxxJW")# 基于 RFC 2971协议 的IMAP4 ID extension 的通信规则,连接服务器需要上传ID信息
imap0bj.id_({"name": "xxxxx", "version": "2.1.0"})# 查看邮箱列表
pprint.pprint(imap0bj.list_folders())# 查看邮箱列表哪个文件夹里的信息
messages = imap0bj.select_folder('已发送')
pprint.pprint(messages)# 搜索这个文件夹里的所有东西,这里只是返回邮件的唯一ID
uids = imap0bj.search(['ALL'])
print(uids)# 遍历邮件的ID来逐个显示其内容
for uid in uids:message = imap0bj.fetch(uid, ['BODY[]'])pprint.pprint(message)# 断开服务器连接
imap0bj.logout()
-
第一步:先import一下库,pprint这里的作用是让数据格式便于阅读。
-
第二步:设置邮箱服务器的地址和端口,这里采用 ssl=True 加密模式进行传输。
-
第三步:输入邮箱账号和授权码 (注意不是登录用的密码)进行登录。
-
第四步:这个是人家要求的,必须得上传一下ID身份信息,看下图。我测了一下name那里填写xxxxx也行,懂我意思吧。
相关链接:https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac2eda07326646e6eb0
-
第五步:查看邮箱列表,我的是这样的。
- 第六步:查看邮箱列表已删除文件夹里的信息。
- 第七步:搜索这个文件夹里的所有东西,这里只是返回邮件的唯一UID。
- 第八步:遍历邮件的UID来逐个显示其内容(格式为RFC 822),这只是获取内容的第一步,后续比如获取这个邮件的发收地址、正文内容需要大家去查资料学习一下啦。
- 第九步:断开服务器连接。
总结
代码量不多,大家可以试一下。
这只是自动化收发邮件的第一步,后续有时间我出个电脑触发某个时间后程序自动向目标邮箱发送指定内容的教程吧哈哈哈哈哈啊哈哈。
相关文章:
Python 自动化之收发邮件(一)
imapclient / smtplib 收发邮件 文章目录 imapclient / smtplib 收发邮件前言一、基本内容二、发送邮件1.整体代码 三、获取邮件1.整体代码 总结 前言 简单给大家写个如何用Python进行发邮件和查看邮件教程,希望对各位有所帮助。 一、基本内容 本文主要分为两部分…...
Flutter开发笔记 —— sqflite插件数据库应用
前言 今天在观阅掘金大佬文章的时候,了解到了该 sqflite 插件,结合官网教程和自己实践,由此总结出该文,希望对大家的学习有帮助! 插件详情 Flutter的 SQLite 插件。支持 iOS、Android 和 MacOS。 支持事务和batch模式…...
OxLint 发布了,Eslint 何去何从?
由于最近的rust在前端领域的崛起,基于rust的前端生态链遭到rust底层重构,最近又爆出OxLint,是一款基于Rust的linter工具Oxlint在国外前端圈引起热烈讨论,很多大佬给出了高度评价;你或许不知道OxLint,相比ES…...
第一次使用ThreadPoolExecutor处理业务
通过对业务逻辑的分析,进行编码,先把第一条sql查出来的数据进行分组,然后分别使用不同的线程去查询数据返回,并添加到原来的数据中。 总感觉哪里写的不对,但是同事们都没用过这个,请大家指教一下ÿ…...
Sharding-Jdbc(6):Sharding-Jdbc日志分析
1 修改配置 将配置文件中的开启分片日志从false改为true Sharding-JDBC中的路由结果是通过分片字段和分片方法来确定的,如果查询条件中有 id 字段的情况还好,查询将会落到某个具体的分片;如果查询没有分片的字段,会向所有的db或者是表都会查…...
centos安装了curl却报 -bash: curl: command not found
前因 我服务器上想用curl下载docker-compress,发现没有curl命令,就去下载安装,安装完成之后,报-bash: curl: command not found 解决方法 [rootcentos ~]# rpm -e --nodeps curl warning: file /usr/bin/curl: remove failed: …...
Re58:读论文 REALM: Retrieval-Augmented Language Model Pre-Training
诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称:REALM: Retrieval-Augmented Language Model Pre-Training 模型名称:Retrieval-Augmented Language Model pre-training (REALM) 本文是2020年ICML论文,作者来自…...
java的json解析
import com.alibaba.fastjson.*; public class JsonParser { public static void main(String[] args) { String jsonStr "{\"name\":\"John\", \"age\":30}"; // JSON字符串示例 // 将JSON字符串转换为JSONObject对象 JSONObje…...
Spring事务失效的几种情况
Spring事务失效的几种情况 1、未被Spring管理的类中的方法 这种情况是指:没有在类上添加Service、Repository、Component等注解将类交由Spring管理,然后该类中还有加上了Transactional注解 例如: Service //如果没有添加Service这个注解…...
filter的用法与使用场景:筛选数据
//this.allCollectorList:后台给定的所有可供选择数据 //this.collectorData:目前已经存在选中列表中的数据//目前已经存在选中列表中的数据id getSelIdList() {let eIdList = []this.collectorData.forEach(row => {eIdList.push(row.id)})return eIdList },//在中的数据…...
ClickHouse(18)ClickHouse集成ODBC表引擎详细解析
文章目录 创建表用法示例资料分享参考文章 ODBC集成表引擎使得ClickHouse可以通过ODBC方式连接到外部数据库. 为了安全地实现 ODBC 连接,ClickHouse 使用了一个独立程序 clickhouse-odbc-bridge. 如果ODBC驱动程序是直接从 clickhouse-server中加载的,那…...
网络攻击(一)--安全渗透简介
1. 安全渗透概述 目标 了解渗透测试的基本概念了解渗透测试从业人员的注意事项 1.1. 写在前面的话 在了解渗透测试之前,我们先看看,信息安全相关的法律是怎么样的 中华人民共和国网络安全法 《中华人民共和国网络安全法》由全国人民代表大会常务委员会…...
视频号小店资金需要多少?
我是电商珠珠 视频号团队于22年7月发展了自己的电商平台-视频号小店,相比于抖音电商来讲,可以有效的将公域流量转化为私域,对于商家来说,是一件利好的事情。 可以有效的提高客户的黏性,增加店铺回头客。 有很多想要…...
机器学习项目精选 第一期:超完整数据科学资料合集
大噶吼,不说废话,分享一波我最近看过并觉得非常硬核的资源,包括Python、机器学习、深度学习、大模型等等。 1、超完整数据科学资料合集 地址:https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials Pytho…...
档案数字化管理可以提供什么服务?
档案数字化管理提供了便捷、高效和安全的档案管理服务,帮助组织更好地管理和利用自己的档案资源。 具体来说,专久智能档案数字化管理可以提供以下服务: 1. 档案扫描和数字化:将纸质档案通过扫描仪转换为数字格式,包括文…...
第一周:AI产品经理跳槽准备工作
一、筛选意向行业 因素1:行业发展情况 1. 行业发展情况和政策 待补充 2. AI人才市场情况 报告下载:待补充 2023年2⽉,ChatGPT爆⽕在脉脉引发各界搜索和热议,当⽉,“AIGC”、“⼈⼯智能”、“ChatGPT”、“⼤模型”等相关词汇搜索指数达到459.31,同⽐增⻓超5.4倍,内…...
基于核心素养高中物理“深度学习”策略及其教学研究课题论证设计方案
目录 一、课题的提出及意义 二、课题的核心概念及其界定...
通过 Java 17、Spring Boot 3.2 构建 Web API 应用程序
本心、输入输出、结果 文章目录 通过 Java 17、Spring Boot 3.2 构建 Web API 应用程序前言Spring Boot 3.2 更新了哪些内容Java 17 新特性构建步骤花有重开日,人无再少年实践是检验真理的唯一标准通过 Java 17、Spring Boot 3.2 构建 Web API 应用程序 编辑:简简单单 Online…...
go原生http开发简易blog(一)项目简介与搭建
文章目录 一、项目简介二、项目搭建前置知识三、首页- - -前端文件与后端结构体定义四、配置文件加载五、构造假数据- - -显示首页内容 代码地址:https://gitee.com/lymgoforIT/goblog 一、项目简介 使用Go原生http开发一个简易的博客系统,包含一下功能…...
[足式机器人]Part4 南科大高等机器人控制课 Ch09 Dynamics of Open Chains
本文仅供学习使用 本文参考: B站:CLEAR_LAB 笔者带更新-运动学 课程主讲教师: Prof. Wei Zhang 南科大高等机器人控制课 Ch09 Dynamics of Open Chains 1. Introduction1.1 From Single Rigid Body to Open Chains1.2 Preview of Open-Chain …...
概率论复习
第一章:随机概率及其概率 A和B相容就是 AB 空集 全概率公式与贝叶斯公式: 伯努利求概率: 第二章:一维随机变量及其分布: 离散型随机变量求分布律: 利用常规离散性分布求概率: 连续性随机变量…...
ES客户端RestHighLevelClient的使用
1 RestHighLevelClient介绍 默认情况下,ElasticSearch使用两个端口来监听外部TCP流量。 9200端口:用于所有通过HTTP协议进行的API调用。包括搜索、聚合、监控、以及其他任何使用HTTP协议的请求。所有的客户端库都会使用该端口与ElasticSearch进行交互。…...
GitHub入门命令介绍
GitHub是当今最受欢迎的代码托管平台之一,它提供了强大的版本控制和协作功能。 对于初学者来说,熟悉GitHub的基本命令非常重要。下面介绍一些常用的GitHub命令。 一、安装Git 1. Windows系统:在Windows上使用GitHub之前,您需要先…...
EasyExcel 简单导入
前边写过使用easyexcel进行简单、多sheet页的导出。今天周日利用空闲写一下对应简单的导入。 重点:springboot、easyExcel、桥接模式; 说明:本次使用实体类student:属性看前边章节内容; 1、公共导入service public …...
Termux搭建nodejs环境
安装nodejs ~ $ pkg install nodejs使用http-server搭建文件下载服务 先安 http-server 并启动 # 安装 http-server 包 ~ $ npm install -g http-server# 启动 http-server 服务 ~ $ http-server Starting up http-server, serving ./http-server version: 14.1.1http-serve…...
喜报丨迪捷软件入选2023年浙江省信息技术应用创新典型案例
12月6日,浙江省经信厅公示了2023年浙江省信息技术应用创新典型案例入围名单。本次案例征集活动,由浙江省经信厅、省密码管理局、工业和信息化部网络安全产业发展中心联合组织开展,共遴选出24个优秀典型解决方案,迪捷软件“基于全数…...
C语言连接zookeeper客户端(不能完全参考官网教程)
准备过程 1.通过VStudio 远程连接linux的开发环境; 2.g环境,通过MingW安装; 3.必须要安装好pthread.h的环境,不管是windows端(linux 可视化端开发就不管这个)还是linux端; 4.需要准备zookeeper…...
python排序
0. 背景 Python排序功能十分强大,可以进行基本排序或自定义排序。Python中提供两种不同的排序方法对各种各样的数据类型进行排序。 1. 使用sorted()函数排序 排序主要是对相同数据类型的元素进行的,包括数值和字符串两种数据类型。 1.1 对数值进行排…...
【Spark精讲】Spark Shuffle详解
目录 Shuffle概述 Shuffle执行流程 总体流程 中间文件 ShuffledRDD生成 Stage划分 Task划分 Map端写入(Shuffle Write) Reduce端读取(Shuffle Read) Spark Shuffle演变 SortShuffleManager运行机制 普通运行机制 bypass 运行机制 Tungsten Sort Shuffle 运行机制…...
【C++初阶】八、初识模板(泛型编程、函数模板、类模板)
相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【C初阶】七、内存管理 (C/C内存分布、C内存管理方式、operator new / delete 函数、定位new表达式) -CSDN博客 目录 一 . 泛型编程 二 . 函数模板 函数模板…...
佛山专业做网站公司哪家好/广东深圳疫情最新
点击按钮怎么跳转到另外一个页面呢?我们在网站制作中可能是需要的,因为有时我们需要做这样的效果,尤其是将按钮做成一个图片,而点击图片要跳转到新的页面时,怎么做到呢?这样的效果可以:οnclick…...
wordpress获取用户注册时间/最近的国际新闻大事
9月1日消息,据《财经》报道,生活服务电子商务平台美团点评IPO定价区间已于8月31日晚间敲定——定价区间为3575亿港币-4290亿港币(约合455亿美元-547亿美元);每股定价区间为60港币-72港币。Pre-greenshoe发行比例占总股…...
搜狗做网站怎么样/中国企业网官方网站
文章主目录th:actionth:eachth:fieldth:hrefth:idth:ifth:includeth:fragmentth:objectth:srcth:replaceth:textth:value如需了解Thymeleaf 基本表达式,请参考《Thymeleaf 基本表达式》一文回到顶部th:action定义后台控制器路径,类似<form>标签的a…...
北京市建设资格与执业资格注册中心网站/百度网盘在线登录入口
(一)信号量的本质是一种数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责…...
婚纱网站设计代码html/网络推广网站的方法
在 Python 中,函数是一等对象。编程语言理论家把“一等对象”定义为满足下述条件的程序实体:在运行时创建能赋值给变量或数据结构中的元素能作为参数传给函数能作为函数的返回结果把函数视作对象Python 函数是对象。这里我们创建了一个函数,然…...
亚马逊跨境电商能赚钱吗/河北关键词seo排名
点击蓝色“程序猿DD”关注我哟加个“星标”,不忘签到哦最近管点闲事浪费了不少时间,感谢网友们的留言提醒。及时纠正路线,继续跟大家一起学习Spring Cloud Alibaba。Nacos作为注册中心和配置中心的基础教程,到这里先告一段落&…...