retrieve/search 用于通过 python IMAP 使用消息 ID 的电子邮件
retrieve/search for emails using message ID through python IMAP
有没有办法 retrieve/search 通过 python IMAP 获取使用消息 ID 的电子邮件 programmatically.I 想提取使用消息 ID 的邮件附件。
任何帮助将不胜感激。
谢谢
谢谢大家前来帮助我。
我终于完成了。
我正在寻找一种方法来获取具有给定 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)
您可以使用 imap_tools 包:
https://github.com/ikvk/imap_tools
如果您想通过消息 ID 查找消息:
from imap_tools import MailBox, A, H
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', 'INBOX') as mailbox:
for msg in mailbox.fetch(A(header=H('Message-ID', 'a123406d-eaf2-58a4-be38@my.ru'))):
print(msg.date, msg.headers['message-id'])
但通常,您很可能需要一个“uid”
https://www.rfc-editor.org/rfc/rfc3501#section-2.3.1.1
一些例子:
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', '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')
# DELETE all messages from current folder
mailbox.delete(mailbox.uids())
# FLAG unseen messages in current folder as Answered and Flagged
flags = (imap_tools.StandardMessageFlags.ANSWERED, imap_tools.StandardMessageFlags.FLAGGED)
mailbox.flag(mailbox.uids(AND(seen=False)), flags, True)
问候,imap_tools 作者。
有没有办法 retrieve/search 通过 python IMAP 获取使用消息 ID 的电子邮件 programmatically.I 想提取使用消息 ID 的邮件附件。 任何帮助将不胜感激。
谢谢
谢谢大家前来帮助我。 我终于完成了。 我正在寻找一种方法来获取具有给定 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)
您可以使用 imap_tools 包: https://github.com/ikvk/imap_tools
如果您想通过消息 ID 查找消息:
from imap_tools import MailBox, A, H
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', 'INBOX') as mailbox:
for msg in mailbox.fetch(A(header=H('Message-ID', 'a123406d-eaf2-58a4-be38@my.ru'))):
print(msg.date, msg.headers['message-id'])
但通常,您很可能需要一个“uid”
https://www.rfc-editor.org/rfc/rfc3501#section-2.3.1.1
一些例子:
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', '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')
# DELETE all messages from current folder
mailbox.delete(mailbox.uids())
# FLAG unseen messages in current folder as Answered and Flagged
flags = (imap_tools.StandardMessageFlags.ANSWERED, imap_tools.StandardMessageFlags.FLAGGED)
mailbox.flag(mailbox.uids(AND(seen=False)), flags, True)
问候,imap_tools 作者。