9

我正在使用 imaplib 在 python 中使用 imap,但是它看起来没有办法解析 IMAP 响应的详细信息。例如,查询如下:

   msgdata = connection.fetch(num, "(BODY.PEEK[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] UID)")

哪里num是消息编号,因为一个邮件服务器可能会产生(例如):

  ('OK', [('1234 (BODY[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] {123}', 'From: ...etc headers'), ' UID 3456)'])

另一个:

  ('OK', [('1234 (UID 3456 BODY[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] {123}', 'From: ...etc headers'), ')'])

如您所见,消息详细信息不同,UID 甚至在不同的元素中。所以问题是 - 是否有一些库可以自动将其分类并抽象出特定邮件服务器的详细信息?

4

3 回答 3

8

Doug Hellman 的imaplib 本周 Python 模块条目是关于该主题的相当广泛的教程,但在这里复制的时间太长了。

您可能希望使用IMAPClient等更高级别的库来隐藏 IMAP 协议的一些细节。

于 2010-12-17T00:26:35.623 回答
1

高级 IMAP 库可能有用:https ://github.com/ikvk/imap_tools

from imap_tools import MailBox
# get list of email subjects from INBOX folder
with MailBox('imap.mail.com').login('test@mail.com', 'password', 'INBOX') as mailbox:
    data = [(msg.uid, msg.subject) for msg in mailbox.fetch()]
于 2019-10-09T12:47:13.933 回答
0

看看 Imbox,你可能会找到你要找的东西https://pypi.org/project/imbox/

于 2019-01-22T17:30:33.490 回答