【发布时间】:2021-07-26 17:25:24
【问题描述】:
我正在使用带有 IMAP4 模块的 Python3.6。我正在尝试将电子邮件从“收件箱”复制到“mytestfolder”。 我得到“OK”作为响应,但电子邮件本身没有被复制到“mytestfolder”。 当相同的代码 sn-p 第一次用于“someotherfolder”到“mytestfolder”时没有任何问题,之后它就不起作用了。下面是代码 sn-p 有人可以帮我解决这个问题。
import config
import imaplib
from creds import username,password
imap = imaplib.IMAP4_SSL(config.imap_server,config.imap_port)
r, d = imap.login(username, password)
assert r == 'OK', 'login failed: %s' % str (r)
print(" > Signed in as %s" % username, d)
imap.select("Inbox")
r, d = imap.search(None, "ALL")
allIds = d[0].decode('utf8').split(' ')
''' Login works and iam getting msg_ids as well'''
for msg_id in allIds:
apply_lbl_msg = imap.uid('COPY', msg_id, 'mytestfolder')
if apply_lbl_msg[0] == 'OK':
mov, data = imap.uid('STORE', msg_id , '+FLAGS', '(\Deleted)')
imap.expunge()
【问题讨论】:
-
不要混合 UID 和序列 ID!要么使用所有 .uid 命令(.uid('SEARCH'),要么不使用 .uid 命令(.copy(...))。如果您使用序列 ID,请将 .expunge 移到循环之外,这样序列 ID 不会重新编号,直到您'完成了。,
-
是的,感谢您的评论。
标签: python python-3.x imap imaplib