通过python IMAP使用消息ID检索/搜索电子邮件

时间:2018-09-25 12:34:58

标签: python email imap

有没有一种方法可以通过python IMAP通过消息ID使用消息ID检索/搜索电子邮件。我想使用消息ID提取邮件的附件。 任何帮助将不胜感激。

谢谢

2 个答案:

答案 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)