关于python:Python结合Window计划任务监测邮件

38次阅读

共计 1606 个字符,预计需要花费 5 分钟才能阅读完成。

说起自动化相对算是茶余饭后最有显 B 格的谈资,毕竟解放双手是从老祖先那里就流传下来的基因,都 2020 了,你每天下班还要登录各个邮箱账号查收邮件?快来解锁本章内容

整体思路

  1. 通过 Python zemail 库实现邮件读取
  2. 将最新一封邮件 ID 进行保留,第二次执行时比对邮件 ID,判断是否是新邮件
  3. 通过 Python pymsgbox 库实现 window 弹窗提醒
  4. 配置 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 文件即可

最初

当初本人手动给邮箱发一封邮件之后,期待 1 分钟后,就能够看到 pymsgbox 的弹窗提醒了,当初就能够去邮箱外面去查收邮件了,或者也能够间接把邮件内容一起显示进去,随便啦

想要获取残缺代码(或其余办公自动化代码)戳这里:​https://github.com/yanwydxf/o…

正文完
 0