当前位置:  开发笔记 > 编程语言 > 正文

在python中使用带有imaplib.fetch的email.HeaderParser?

如何解决《在python中使用带有imaplib.fetch的email.HeaderParser?》经验,为你挑选了1个好方法。

有没有人有一个很好的例子,在Python中使用HeaderParser类来获取你用imaplib.fetch下载的消息?

我已经能够找到很多相关的东西,但没有任何东西可以做到这一点.

我是否需要完全取下有一个RFC822?我希望简单地拉下主题.

谢谢!



1> Jarret Hardi..:

好消息:你是对的......你不需要拉下RFC822.这个message_parts参数可以fetch()让你非常精细.

这是一个如何获取标题的简单示例:

import imaplib
from email.parser import HeaderParser

conn = imaplib.IMAP4('my.host.com')
conn.login('my@username.com', 'mypassword')
conn.select()
conn.search(None, 'ALL') # returns a nice list of messages...
                         # let's say I pick #1 from this

data = conn.fetch(1, '(BODY[HEADER])')

# gloss over data structure of return... I assume you know these
# gives something like:
# ('OK', [(1 (BODY[HEADER] {1662', 'Received: etc....')])
header_data = data[1][0][1]

parser = HeaderParser()
msg = parser.parsestr(header_data)


print msg.keys()
['Received', 'Received', 'Received', 'Cc', 'Message-Id', 'From', 'To',
'In-Reply-To', 'Content-Type', 'Content-Transfer-Encoding', 'Mime-Version',
'Subject', 'Date', 'References', 'X-Mailer', 
'X-yoursite-MailScanner-Information',
'X-yoursite-MailScanner', 'X-yoursite-MailScanner-From', 'Return-Path',
'X-OriginalArrivalTime']

可以作为第二个参数传递的消息部分的完整列表fetch在IMAP4规范中:http://tools.ietf.org/html/rfc1730#section-6.4.5

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有