gpt4 book ai didi

python - 通过 Python 脚本删除最近收到的电子邮件?

转载 作者:行者123 更新时间:2023-11-28 16:54:27 24 4
gpt4 key购买 nike

我使用 Gmail 和一个应用程序,它会在我收到一封新电子邮件时通知我,并在工具提示中包含其标题。 (带有 Miranda-IM 的 GmailNotifier)我收到的大多数电子邮件都是我不想阅读的,而且为了删除这些电子邮件而不得不在慢速连接上登录 Gmail 很烦人。我相信插件是闭源的。

我一直(未成功)尝试编写一个脚本来登录并删除“顶级”电子邮件(最近收到的电子邮件)。然而,这并不像我想象的那么容易。

我首先尝试使用 imaplib,但发现它不包含任何我希望包含的方法。它有点像 dbapi 规范,只包含最少的功能以防 imap 规范发生变化。然后我尝试阅读 imap RFC (rfc3501)。进行到一半时,我意识到我不想编写整个邮件客户端,因此决定尝试使用 pop3。

poplib 也很小,但似乎有我需要的东西。但是 pop3 似乎没有按照我熟悉的任何顺序对消息进行排序。如果我想查看收到日期,我必须在每封电子邮件上调用 top() 或 retr() 来读取标题。

我或许可以遍历每个邮件标题,搜索最近的日期,但这很丑陋。如果可能,我想避免解析我的整个邮箱。我也不想“弹出”邮箱并下载任何其他邮件。

现在已经过去 6 个小时了,与开始时相比,我感觉离解决方案的距离并不近。我忽略了一些简单的事情吗?我可以试试另一个图书馆吗? (我找到了一个“chilkat”,但它太臃肿了,我希望用标准库来做到这一点)

最佳答案

import poplib

#connect to server
mailserver = poplib.POP3_SSL('pop.gmail.com')
mailserver.user('recent:YOURUSERNAME') #use 'recent mode'
mailserver.pass_('YOURPASSWORD') #consider not storing in plaintext!

#newest email has the highest message number
numMessages = len(mailserver.list()[1])

#confirm this is the right one, can comment these out later
newestEmail = mailserver.retr(numMessages)
print newestEmail

#most servers will not delete until you quit
mailserver.dele(numMessages)
mailserver.quit()

我最近使用 poplib,编写了一个非常原始的电子邮件客户端。我用我的电子邮件服务器(不是 gmail)对一些测试电子邮件进行了测试,它似乎工作正常。我会先给自己发几封虚拟电子邮件来测试一下。

注意事项:

希望这对您有所帮助,它应该足以让您继续前进!

关于python - 通过 Python 脚本删除最近收到的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2260316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com