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中处理字符串之isalpha()方法的使用
May 18 Python
python通过apply使用元祖和列表调用函数实例
May 26 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
Python获取指定字符前面的所有字符方法
May 02 Python
Django 连接sql server数据库的方法
Jun 30 Python
python中cPickle类使用方法详解
Aug 27 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
python 如何上传包到pypi
Dec 24 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 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
JavaScript 函数调用规则
2009/09/14 Javascript
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
Python 性能优化技巧总结
2016/11/01 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
python实现websocket的客户端压力测试
2019/06/25 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
python、Matlab求定积分的实现
2019/11/20 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
百丽国际旗下购物网站:优购
2017/02/28 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
法人授权委托书
2014/04/03 职场文书
团委竞选演讲稿
2014/04/24 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
幼儿园教师求职信
2015/03/20 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
高三英语教学反思
2016/03/03 职场文书
创业计划书之熟食店
2019/10/16 职场文书
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python