有没有一种方法可以通过python IMAP通过消息ID使用消息ID检索/搜索电子邮件。我想使用消息ID提取邮件的附件。 任何帮助将不胜感激。
谢谢
答案 0 :(得分:2)
谢谢大家来帮助我。 我终于完成了。 我正在寻找一种获取具有给定Message ID的邮件附件的方法, 我不知道如何在HEADER选项或任何其他搜索选项中指定带有消息ID的搜索命令。
我觉得这对像IMAP一样刚开始并想要完成类似任务的人可能会有所帮助 终于,我通过以下搜索命令得到了它:
#message id
mid = '<CACDWeWHLGKbEHR-jMmx8da9QzkpPxC7Dizy6T4fm2V30JoHMuw@mail.gmail.com>'
#the search command
typ, data = imapSession.search(None, '(HEADER Message-ID "%s")' % mid)
答案 1 :(得分:0)
很可能您需要一个“ uid”。
您可以使用imap_tools软件包: https://pypi.org/project/imap-tools/
一些例子:
for message in mailbox.fetch():
message.uid
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)