我想将一封电子邮件从我的收件箱移到垃圾箱文件夹,我不想永久删除该电子邮件,我希望它经历在垃圾箱中等待 30 天才能永久删除的过程。
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login("example@gmail.com", "example")
Run Code Online (Sandbox Code Playgroud)
mail.select("inbox")
result, data = mail.uid('search', None, "ALL")
uidList = data[0].split()
Run Code Online (Sandbox Code Playgroud)
#processEmails returns the uids of the emails that I need
#not really important for the purposes of this question
newUidList = processEmails(uidList)
Run Code Online (Sandbox Code Playgroud)
newUidListfor uid in newUidList:
mail.uid('STORE',uid, '+FLAGS', '(\\Deleted)')
Run Code Online (Sandbox Code Playgroud)
我认为这条线mail.uid('STORE',uid, '+FLAGS', '(\\Deleted)')可以解决问题(因为这是我在互联网上找到的)。但是在这里问这个问题,你可能已经正确地猜到了它没有。
当我执行此脚本时,电子邮件按计划从收件箱中消失了。但是当我访问垃圾文件夹时,那里什么也没有。所以我想也许它们被永久删除了。
但他们不是。当我看到我的电子邮件存储空间正在快速填满时,我注意到了这一点,这意味着我的电子邮件仍在某处。
我进入“所有电子邮件”文件夹,它们就在那里。
mail.uid('STORE',uid, '+FLAGS', '(\\Deleted)')谢谢您的意见 :)
前段时间,我在Python上编写了一个处理电子邮件消息的程序,总有一件事就是知道电子邮件是否是"多部分".
经过一些研究,我知道它与包含HTML或附件等的电子邮件有关......但我并不是真的理解它.
1.当我必须从原始电子邮件中保存附件时
我刚刚在互联网上发现了这一点(可能在这里 - 很抱歉没有记下编写它的人,但我似乎无法再找到他了:/)并将其粘贴在我的代码中
def downloadAttachments(emailMsg, pathToSaveFile):
"""
Save Attachments to pathToSaveFile (Example: pathToSaveFile = "C:\\Program Files\\")
"""
att_path_list = []
for part in emailMsg.walk():
# multipart are just containers, so we skip them
if part.get_content_maintype() == 'multipart':
continue
# is this part an attachment ?
if part.get('Content-Disposition') is None:
continue
filename = part.get_filename()
att_path = os.path.join(pathToSaveFile, filename)
#Check if its already there
if not os.path.isfile(att_path) :
# finally write the stuff
fp = open(att_path, 'wb') …Run Code Online (Sandbox Code Playgroud)