FeedParser API を読んで、電子メール メッセージ オブジェクトを解析できることを理解しました。準拠していないヘッダー形式が見つかった場合は、オブジェクトの欠陥属性を設定します。今日これで遊んでみましたが、そこにあることがわかっている欠陥を埋めることができませんでした。
たとえば、FeedParser にフィードしているメッセージ ヘッダーの最初の部分は次のとおりです。
Received from geronimo.server11.kingtut.local ([172.16.50.50])
by ryu.objectgenerator.net (Lotus Domino Release 8.5.1FP5)
with ESMTP id 2012102117563555-21066 ;
Sun, 21 Oct 2012 17:56:35 +0800
Return-Path: <3ff.d.13239334.D893343-342613@bounce.objectgenerator.net>
最初の行には、ヘッダー フィールドを残りの部分から分離するコロンが含まれていません。また、2 行目が適切にインデント/折り畳まれていません。
ここに私がテストしているコードがあります:
>>> import email
>>> import email.parser
>>> file = open('bad.eml').read()
>>> bad_feed = email.parser.FeedParser()
>>> bad_feed.feed(file)
>>> msg_object = bad_feed.close()
>>> msg_object.defects
[]
>>>
「ファイル」を適切な方法で FeedParser に渡していないと思われます。誰かが私が間違っていることを指摘してもらえますか?