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入门之语句(if语句、while语句、for语句)
Jan 19 Python
python通过BF算法实现关键词匹配的方法
Mar 13 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
Python程序员面试题 你必须提前准备!
Jan 16 Python
Python实现邮件的批量发送的示例代码
Jan 23 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
使用python制作一个解压缩软件
Nov 13 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
python mysql 字段与关键字冲突的解决方式
Mar 02 Python
python语言中有算法吗
Jun 16 Python
Python实战之实现康威生命游戏
Apr 26 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 smarty函数扩展
2010/03/15 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
用于table内容排序
2006/07/21 Javascript
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
基于React+Redux的SSR实现方法
2018/07/03 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
详解Python中最难理解的点-装饰器
2017/04/03 Python
python的concat等多种用法详解
2018/11/28 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
摄影助理岗位职责
2014/02/07 职场文书
安全保证书范文
2014/04/29 职场文书
党员身份证明材料
2015/06/19 职场文书
高一地理教学工作总结
2015/08/12 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫