Python结合Window计划任务监测邮件的示例代码


Posted in Python onAugust 05, 2020

说起自动化绝对算是茶余饭后最有显B格的谈资,毕竟解放双手是从老祖先那里就流传下来的基因,都2020了,你每天上班还要登录各个邮箱账号查收邮件?快来解锁本章内容

整体思路

  • 通过Python zemail库实现邮件读取
  • 将最新一封邮件ID进行保存,第二次执行时比对邮件ID,判断是否是新邮件
  • 通过Python pymsgbox库实现window弹窗提示
  • 配置Window计划任务,每1分钟执行一次

 步骤一:邮件读取

读取邮件通过Python zemail库进行,使用前通过 pip install zemail进行安装,下面来看个邮件读取的例子

import zmail
#获取最新邮件并打印邮件信息
server = zmail.server('xxxxx@qq.com', 'mdgxgiwpnkspbxgx')
mail = server.get_latest()
zmail.show(mail)
print(mail["id"])
print(mail["from"])
print(mail["to"])
print(mail["subject"])
print(mail["context_text"])
print(mail["context_html"])

在配置邮件server时,注意邮箱要开启POP3/SMTP服务,QQ邮箱开启是在:设置->开启POP3/SMTP服务,同时设置授权码,server配置第二个是自动生成的授权码

步骤二:新旧邮件比对

想要提示用户有最新的邮件,就要把最后一封邮件的信息进行记录,在指定时间后,拿着两封邮件的信息进行比对,这里我们使用的邮件ID(注意ID并不唯一,如要确保一定的准确,可以用ID结合邮件标题等多方面信息)

记录邮件信息我这里放在了一个txt文件中,每次先读取再写入

old_mailid = open('id.txt', 'r').readline()
# 写入新邮件ID
with open('id.txt', mode='w+', encoding='utf-8') as f:
  f.write(str(mail_id))

步骤三:实现window弹窗提示

像这种操作早有前人已经替我们完成了,这种库有很多,这里采用的是pymsgbox,使用前注意通过pip install pymsgbox进行安装

先了解下pymsgbox弹窗的多种形式

pymsgbox.alert(text='', title='', button='OK')
pymsgbox.confirm(text='', title='', buttons=['OK', 'Cancel'])
pymsgbox.pompt(text='', title='' , default='')
pymsgbox.password(text='', title='', default='', mask='*')

显然我们这里用不到太复杂的弹窗,只要一个alert就阔以了

#判断邮件是否是最新
if old_mailid != str(mail_id):
  pymsgbox.alert("你有一封新邮件!") # 弹窗提示有新邮件

步骤四:配置Window计划任务

前面都完成之后,执行python文件已经可以提示最新邮件了,现在遇到的问题就是如果自动化起来,总不能自己手动点吧

这里配置Window计划任务,首先创建一个新任务,起个名字autoemail

配置触发器,每1分钟执行一次,在操作这里,要执行的内容是什么呢,显然Window并不能直接执行python,这里创建一个.bat文件,在文件中执行Python文件,在计划任务这里指定.bat文件即可

Python结合Window计划任务监测邮件的示例代码

最后

现在自己手动给邮箱发一封邮件之后,等待1分钟后,就可以看到pymsgbox的弹窗提示了,现在就可以去邮箱里面去查收邮件了,或者也可以直接把邮件内容一起显示出来,随意啦

Python结合Window计划任务监测邮件的示例代码

想要获取完整代码(或其他办公自动化代码)戳这里 :​ https://github.com/yanwydxf/office-automation/tree/master/autoemail

到此这篇关于Python结合Window计划任务监测邮件的示例代码的文章就介绍到这了,更多相关Python Window计划任务监测邮件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python中使用异步Socket编程性能测试
Jun 25 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
Python中join函数简单代码示例
Jan 09 Python
python如何压缩新文件到已有ZIP文件
Mar 14 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
Opencv求取连通区域重心实例
Jun 04 Python
如何理解python对象
Jun 21 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
对Keras自带Loss Function的深入研究
May 25 Python
Python采集爬取京东商品信息和评论并存入MySQL
Apr 12 Python
python爬虫使用requests发送post请求示例详解
Aug 05 #Python
8种常用的Python工具
Aug 05 #Python
浅析Python 序列化与反序列化
Aug 05 #Python
Python创建临时文件和文件夹
Aug 05 #Python
学习Python爬虫的几点建议
Aug 05 #Python
Python调用C/C++的方法解析
Aug 05 #Python
浅谈Python3中print函数的换行
Aug 05 #Python
You might like
简单谈谈PHP中strlen 函数
2016/02/27 PHP
php 基础函数
2017/02/10 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
Python 第一步 hello world
2009/09/25 Python
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
python离线安装外部依赖包的实现
2020/02/13 Python
pycharm安装及如何导入numpy
2020/04/03 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
解决方案设计综合面试题
2015/08/31 面试题
精彩的大学生自我评价
2013/11/17 职场文书
学生会个人自荐书范文
2014/02/12 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
爱护公物演讲稿
2014/09/09 职场文书
教师个人事迹材料
2014/12/17 职场文书
贪污检举信范文
2015/03/02 职场文书
项目验收申请报告
2015/05/15 职场文书
企业文化学习心得体会
2016/01/21 职场文书
原生JS实现分页
2022/04/19 Javascript
Golang jwt身份认证
2022/04/20 Golang