我的“所有”邮箱中的电子邮件比“重要”和“已发送”邮箱中的电子邮件多。我要删除所有不在“重要”或“已发送”邮箱中的邮件。
我无法执行以下任何步骤:
1)删除“所有”邮箱中的所有电子邮件,(当我删除“所有”邮箱中的所有电子邮件时,“重要”和“已发送”邮箱中的所有电子邮件将被同时删除)
2 ),然后从“重要”和“已发送”邮箱复制电子邮件。
如何编写代码来完成此任务?该问题可以成为另一种形式:
如何在我的gmailbox中将电子邮件副本:“ [Gmail] /&kc 2JgQ-”复制到本地目录g:\ mygmail中?
我的gmail-收件箱中有5封电子邮件,我将它们全部保存在g:\ mygmails中,并使用以下代码将其命名为0th.myemail 1th.myemail 2th.myemail 3th.myemail 4th.myemail,现在可以我通过雷鸟或一些电子邮件软件阅读它们,我不想编写自己的代码来阅读它们吗?
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()
在Google上进行了一些挖掘之后,我发现了一个github存储库,该存储库提供了用于执行此操作的模块。它没有很好的文档记录,但是源代码非常易于阅读,因此完全没有损失。
在使用此模块方面,您可以在每封电子邮件中加载指定的标签,并将其标记为保存,然后浏览所有电子邮件并删除未标记的电子邮件。
我目前还没有一种在远程服务器上标记电子邮件的自然方法,因此您可能必须实现一些将电子邮件记录为字符串并将其存储在的方法set
。
如果您还有任何疑问,请对此答案发表评论,我可以详细说明。
例如:如果您要将特定邮箱的条目复制到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()
因此,假设您相应地调整了全局变量,那么您现在有了gmail帐户emails
中所有电子邮件的python列表(在python变量中)。一旦有了这个,您就可以轻松地执行类似将其保存到文件中的操作。mailboxname
username
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句