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判断端口是否打开的实现代码
Feb 10 Python
跟老齐学Python之做一个小游戏
Sep 28 Python
python遍历类中所有成员的方法
Mar 18 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
Python学习笔记之自定义函数用法详解
Jun 08 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
Python Django 简单分页的实现代码解析
Aug 21 Python
Python常用数据类型之间的转换总结
Sep 06 Python
pycharm sciview的图片另存为操作
Jun 01 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
PHP读取文件内容的五种方式
2015/12/28 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
解释&&和||在javascript中的另类用法
2014/07/28 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
师德师风建设方案
2014/05/08 职场文书
拓展训练激励口号
2014/06/17 职场文书
小学捐书活动总结
2014/07/05 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
工人先锋号申报材料
2014/12/29 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
Python开发简易五子棋小游戏
2022/05/02 Python
MySQL数据库中的锁、解锁以及删除事务
2022/05/06 MySQL
基于Python实现西西成语接龙小助手
2022/08/05 Golang