gpt4 book ai didi

python - 如何删除所有不在重要或已发送文件夹中的电子邮件?

转载 作者:太空宇宙 更新时间:2023-11-03 11:03:57 25 4
gpt4 key购买 nike

我的所有邮箱中的电子邮件比重要和已发送邮箱中的多。我想删除所有不在重要或已发送邮箱中的邮件。

我无法执行以下任何步骤
1)删除所有邮箱中的所有邮件,(当我删除所有邮箱中的所有邮件时,重要和已发送邮箱中的所有邮件将同时删除)
2) 并从重要邮箱和已发送邮箱中复制邮件。

我如何编写代码来实现这一点?问题可以变成另一种形式:

如何将我的 gmailbox 中的电子邮件复制:[Gmail]/&kc 2JgQ-"到本地目录 g:\mygmail 中?

我的gmail--收件箱里有5封邮件,我把它们都保存在g:\mygmails中,并用下面的代码将它们命名为0th.myemail 1th.myemail 2th.myemail 3th.myemail 4th.myemail,现在我怎样才能通过 thunderbird 或一些电子邮件软件阅读它们,我不想编写自己的代码来阅读它们?

import email,imaplib
att_path="g:\\mygmails\\"
user="xxxx"
password="yyyy"
con=imaplib.IMAP4_SSL('imap.gmail.com')
con.login(user,password)
con.select('INBOX')
resp, items = con.search(None, "ALL")
items = items[0].split()
for id,num in enumerate(items):
resp, data = con.fetch(num, "(RFC822)")
data=data[0][1]
fp = open(att_path+str(id)+"th"+".myemail", 'wb')
fp.write(data)
fp.close()

最佳答案

在谷歌上做了一些挖掘之后,我发现了一个 github repository它提供了一个用于执行此操作的模块。它没有很好的文档记录,但源代码非常易于阅读,因此根本不会造成重大损失。

在使用此模块方面,您可以加载具有指定标签的每封电子邮件并标记它们以保存,然后遍历所有电子邮件并删除未保存的电子邮件已标记

我目前没有看到在远程服务器上标记电子邮件的自然方法,因此您可能必须实现一些将电子邮件记录为字符串并将它们存储在 中的方法设置

如果您还有任何问题,只需对这个答案发表评论,我可以详细说明。

例如:如果您想将特定邮箱的条目复制到 python 数据结构中,您可以这样做:

# Global Variables
username, password, mailboxname = '', '', '[Gmail]/&kc 2JgQ-'

# Set up
import gmail
g = gmail.Gmail()
g.login(username, password)

# Actual code.
emails = []
for email in g.mailbox(mailboxname).mail():
emails.append(email.fetch())

# Tear down.
g.logout()

假设您相应地调整了全局变量,您现在有一个 python 列表(在 python 变量 emails 中),其中包含 gmail 帐户的 mailboxname 中的所有电子邮件用户名。一旦你有了这个,你可以很容易地做一些事情,比如将它保存到一个文件中

关于python - 如何删除所有不在重要或已发送文件夹中的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25279324/

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