0

正常に動作するサーバーからメールを取得するために imap を使用しています。私は次のようにRFC 822でメールを取得しています:

r, data = mailserver.fetch(mailnr, '(RFC822)')

これにより、ほとんどの部分で解読可能なメールが得られますが、今では次のようなマルチパート メールがあります。

差出人 : xxx xxx

宛先 : xxx xxx

件名 : =?utf-8?Q?online_verf=C3=BCgbar_-_TESTQUELLE_f=C3=BCr_Regel?= =?utf-8?Q?-_u_Benachrichtigungdienst_()?=

Content-Type : マルチパート/代替; 境界="----=_NextPart_457512452482695058637"

Content-Transfer-Encoding : なし

MIME バージョン : 1.0

ペイロード:

=20 =20 sourcename:TESTQUELLE f=C3=BCr Regel- u Benachrichtigungdienst;csi:123456= ;publishdate:05=2E11=2E2013

メールは utf-8 のように見えますが、どういうわけか、テキストも URL エンコードされているか、そのようなものです。

「%」「=」の代わりにのみエンコードされた URL が使用されているようです。

これを通常のテキストのように見せる方法についてのアイデアはありますか?

4

2 に答える 2

1

データは、UTF-8 としてエンコードされ、次に引用可能印刷可能としてエンコードされた Unicode テキストのようです。quopriこれをエンコード/デコードするためのモジュール " " があります- http://docs.python.org/3.3/library/quopri.html

quopri.decodestringUTF-8 にデコードし、それを unicode にデコードする場合、yuo はそれを読み取ることができるはずです。

于 2013-11-05T11:06:49.367 に答える
1

最後にこれを見つけました:

mail.get_payload(decode=1).decode('utf-8')

その文字列を取得した get_payload() のみを使用しました。

于 2013-11-05T11:07:20.027 に答える