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读取浮点数和读取文本文件示例
May 06 Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 Python
Python比较两个图片相似度的方法
Mar 13 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
聊聊Python中的pypy
Jan 12 Python
python实现监控某个服务 服务崩溃即发送邮件报告
Jun 21 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
Python实现查询某个目录下修改时间最新的文件示例
Aug 29 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
Python数据类型之String字符串实例详解
May 08 Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 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和ACCESS写聊天室(二)
2006/10/09 PHP
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
Python中DJANGO简单测试实例
2015/05/11 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
python3.4爬虫demo
2019/01/22 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
python创建学生管理系统
2019/11/22 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
销售员个人求职的自我评价
2014/02/10 职场文书
北京申奥口号
2014/06/19 职场文书
民事起诉书范本
2015/05/19 职场文书
诚实守信主题班会
2015/08/13 职场文书
党校团干班培训心得体会
2016/01/06 职场文书