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 序列的方法总结
Oct 18 Python
python实现读取并显示图片的两种方法
Jan 13 Python
TensorFlow实现创建分类器
Feb 06 Python
Python paramiko模块的使用示例
Apr 11 Python
对numpy中向量式三目运算符详解
Oct 31 Python
python实现PID算法及测试的例子
Aug 08 Python
python 中xpath爬虫实例详解
Aug 26 Python
Python中SQLite如何使用
May 27 Python
class类在python中获取金融数据的实例方法
Dec 10 Python
python安装mysql的依赖包mysql-python操作
Jan 01 Python
python实现黄金分割法的示例代码
Apr 28 Python
Python机器学习应用之工业蒸汽数据分析篇详解
Jan 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
php文件上传表单摘自drupal的代码
2011/02/15 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
php生成HTML文件的类方法
2019/10/11 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
使用pip发布Python程序的方法步骤
2018/10/11 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
python动态规划算法实例详解
2020/11/22 Python
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
中秋节国旗下演讲稿
2014/09/13 职场文书
六年级小学生评语
2014/12/26 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
微信小程序调用python模型
2022/04/21 Python