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写的Discuz7.2版faq.php注入漏洞工具
Aug 06 Python
Python字符串处理之count()方法的使用
May 18 Python
Python中元组,列表,字典的区别
May 21 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
快速了解Python相对导入
Jan 12 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
Python confluent kafka客户端配置kerberos认证流程详解
Oct 12 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 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
header与缓冲区之间的深层次分析
2016/07/30 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
Z-Blog中用到的js代码
2007/03/15 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python中scikit-learn机器代码实例
2018/08/05 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
python文件和文件夹复制函数
2020/02/07 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
初任培训自我鉴定
2013/10/07 职场文书
大学学习生活感言
2014/01/18 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
选秀节目策划方案
2014/06/06 职场文书
学校四风对照检查材料
2014/08/28 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
MySQL三种方式实现递归查询
2022/04/18 MySQL