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中logging模块的用法实例
Sep 29 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
解决Matplotlib图表不能在Pycharm中显示的问题
May 24 Python
TensorFlow数据输入的方法示例
Jun 19 Python
python+numpy+matplotalib实现梯度下降法
Aug 31 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 Python
Django models filter筛选条件详解
Mar 16 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 Python
python神经网络ResNet50模型
May 06 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调用三种数据库的方法(2)
2006/10/09 PHP
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
详解extract-text-webpack-plugin 的使用及安装
2018/06/12 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
django页面跳转问题及注意事项
2019/07/18 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
Python实现粒子群算法的示例
2021/02/14 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
.NET面试10题
2014/02/24 面试题
介绍一下grep命令的使用
2012/06/28 面试题
求职简历自荐信
2013/10/20 职场文书
化学专业毕业生自荐信
2013/11/15 职场文书
领班岗位职责范文
2014/02/06 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
小学生读书活动总结
2014/06/30 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
2014年劳动部工作总结
2014/12/11 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
企业宣传语大全
2015/07/13 职场文书
Python实战之实现简易的学生选课系统
2021/05/25 Python
室外天线与收音机天线杆接合方法
2022/04/05 无线电