2011-12-13 12 views
1

pythonのimaplibemail.feedparserを使用して、Gmailの受信トレイから添付ファイルを取得しようとしています。電子メールは外部から生成され、私たちに送信されるので、私はそれを支配しません。Pythonで悪いMIMEタイプのメールを解析する

トラブルは、私が解析しようとしているメッセージは、代わりに'multitype'msg.get_content_maintype()リターン'text'を持っていることです。その結果、uuencode添付ファイルが残りのメッセージと連結され、email.message.Messageから簡単に取り出すことができません。

どのように私はそのような電子メールから添付ファイルを抽出できますか?

もし何か助けがあれば、その電子メールには 'Produced By Microsoft MimeOLE V6.00.3790.4862'という文字が含まれています。 Thunderbirdもこのメールのレンダリングに問題があり、添付ファイルがあることを理解できませんでした。それ以外の場合は、OutlookおよびGmailウェブクライアントでメッセージは正常に表示されます。

答えて

0

email.parser.FeedParser documentationには、_factoryパラメータを使用して、独自のMessageクラスを指定できます。このメッセージが "Produced By Microsoft MimeOLE ... blablabla"で構成されている場合は、email.message.Messageから派生した独自のクラスを入れて、メッセージcontenttypeを正しいものに置き換えることができます。

私は、この特定のケースのメッセージは常にマルチパートになると予想しても安全だと思います。

+0

ありがとうございました。これは、これを解決する標準的な方法かもしれません。昨夜、私は 'uu'でメッセージに' _payload'をデコードすることで、ハッキングの仕方を理解しました。答えを少しでも投稿します。 – Roger

+0

@Roger標準的な方法で私のソリューションをここに受け入れると大変感謝します;) – lig

関連する問題