使用Python库在IMAP中移动邮件
在IMAP中,将邮件移动到其他文件夹似乎相当困难 看 如何在Python中做到这一点而不编写太多代码 我更喜欢重用:-)标准模块随时为您服务 除了链接问题中的方法外,您还可以使用带有使用Python库在IMAP中移动邮件,python,email,imap,imaplib,Python,Email,Imap,Imaplib,在IMAP中,将邮件移动到其他文件夹似乎相当困难 看 如何在Python中做到这一点而不编写太多代码 我更喜欢重用:-)标准模块随时为您服务 除了链接问题中的方法外,您还可以使用带有IMAP4的非标准命令。_simple_command(请参见copy()实现,其语法相同) 检查自身功能后,标准模块将为您服务 除了链接问题中的方法外,您还可以使用带有IMAP4的非标准命令。_simple_command(请参见copy()实现,其语法相同) 检查自身功能后,查看“移动”状态。您链接到的问题有一个
IMAP4的非标准命令。_simple_command
(请参见copy()
实现,其语法相同)
检查自身功能后,标准模块将为您服务
除了链接问题中的方法外,您还可以使用带有IMAP4的非标准命令。_simple_command
(请参见copy()
实现,其语法相同)
检查自身功能后,查看“移动”
状态。您链接到的问题有一个问题,解释了IMAP协议的功能。这种命令可能太新,无法通过Python的标准imaplib
获得。如果是这样的话,你最好向他们发送一个补丁,以便在将来的版本中包含它。这就是它的工作原理——如果没有人费心添加对新命令的支持,它就不会被添加
imaplib
是一个相当低级的包,因此我不希望它能够实现一种很好的消息传递方式。我的建议是使用另一个提供IMAP更高级视图的库(“嘿,服务器,收件箱中有多少封邮件?请给我看最后一封邮件的MIME结构…”)。您链接到的问题有一个解释IMAP协议功能的问题。这种命令可能太新,无法通过Python的标准imaplib
获得。如果是这样的话,你最好向他们发送一个补丁,以便在将来的版本中包含它。这就是它的工作原理——如果没有人费心添加对新命令的支持,它就不会被添加
imaplib
是一个相当低级的包,因此我不希望它能够实现一种很好的消息传递方式。我的建议是使用另一个提供IMAP更高级视图的库(“嘿,服务器,收件箱中有多少封邮件?请向我展示上一封邮件的MIME结构…”)。您可以使用IMAP\u工具包:
您可以使用imap_工具包:
这个命令在IMAP规范中可能是新的。是的,这是真的。但是用例非常古老。我现在使用IMAPClient,并与维护人员进行了交谈,因为到目前为止它还没有移动。该命令在IMAP规范中可能是新的。是的,这是真的。但是用例非常古老。我现在使用IMAPClient,并与维护人员进行了交谈,因为它到目前为止没有移动。
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', initial_folder='INBOX') as mailbox:
# COPY all messages from current folder to folder1, *by one
for msg in mailbox.fetch():
res = mailbox.copy(msg.uid, 'INBOX/folder1')
# MOVE all messages from current folder to folder2, *in bulk (implicit creation of uid list)
mailbox.move(mailbox.fetch(), 'INBOX/folder2')
# DELETE all messages from current folder, *in bulk (explicit creation of uid list)
mailbox.delete([msg.uid for msg in mailbox.fetch()])
# FLAG unseen messages in current folder as Answered and Flagged, *in bulk.
flags = (imap_tools.StandardMessageFlags.ANSWERED, imap_tools.StandardMessageFlags.FLAGGED)
mailbox.flag(mailbox.fetch('(UNSEEN)'), flags, True)
# SEEN: mark all messages sent at 05.03.2007 in current folder as unseen, *in bulk
mailbox.seen(mailbox.fetch("SENTON 05-Mar-2007"), False)