7
get_payloadで違和感を覚えています:デコードしているメッセージに等号が見えるときは間違っているようです。ここでは、エラーを表示するコードです:Python:等号を打つと、get_payloadのデコードが失敗しますか?
import email
data = file('testmessage.txt').read()
msg = email.message_from_string(data)
payload = msg.get_payload(decode=True)
print payload
は、そしてここにサンプルメッセージです:test message。
メッセージは、最初の "="までのみ表示されます。残りは省略されています。誰が何が起こっているのか知っていますか?
"decode = False"と同じスクリプトは、完全なメッセージを返します。そのため、デコードは等号と不一致です。
これはPython 2.5の下にあります。
Thanks Richie、that works。しかし、私はテキストではない添付ファイルも扱っているので、おそらく再置換を無差別にやりたいとは思わないでしょう。私はtext/plainを検出する必要があります。そして、代入だけを行う必要があります。これは、メッセージ部分のMIMEタイプがmessage_from_stringコールを過ぎているので、ちょっと微妙です。 get_payload呼び出しの外部で別々にデコードを呼び出すことはできますか? – Parand
真のバイナリ添付ファイルを扱うことは確実でしょうか?添付ファイルは、通常、base64などを使用して電子メール内でエンコードされるため、バイナリファイルを表すものの、電子メール内のテキストとしてエンコードされます。 – RichieHindle
あなたはもう一度そうです。私はかなりの数の例を使ってテストしましたが、皆さんが提案した代入で問題なく動作します。再度、感謝します。 – Parand