IMAP:如何将邮件从一个文件夹移动到另一个文件夹
时间:2020-03-06 14:36:40 来源:igfitidea点击:
(使用IMAP命令,而不借助任何其他邮件程序包)
解决方案
我猜我们将邮件复制到新文件夹,然后在旧文件夹中将其删除(删除)。
RFC351
提示没有DELETE命令可以执行意思,我们必须将邮件标记为已删除,然后删除邮箱。看一下RFC。请谨慎使用DELETE,因为它会删除整个邮箱,而不是单个邮件。
我不确定我们对imap的了解程度如何,但是基本上在登录后,"选择"源邮箱,"复制"邮件,然后"删除"邮件(如果是,则"删除"旧邮箱)现在是空的:-)。
a login a s b select source c copy 1 othermbox d store 1 +flags (\Deleted) e expunge
将是要发送的消息的示例。 (注意:imap消息在每个命令之前都需要一个uniqe前缀,因此,前面的" a b c")
有关详细信息,请参见RFC 2060。
如果我们有将要移动的电子邮件的uid。
import imaplib obj = imaplib.IMAP4_SSL('imap.gmail.com', 993) obj.login('username', 'password') obj.select(src_folder_name) apply_lbl_msg = obj.uid('COPY', msg_uid, desti_folder_name) if apply_lbl_msg[0] == 'OK': mov, data = obj.uid('STORE', msg_uid , '+FLAGS', '(\Deleted)') obj.expunge()
其中,msg_uid是邮件的uid。