前回、エンコードしたSubjectを入れる説明をしましたが、今回はデコードの方法。
email.header.Header を使ってれば、問題ないのですがBase64でエンコードされた文字列をそのまま入ってる場合はデコードが必要です。
デコードするには、 email.header.decode_header を使います。
Base64エンコードされた subject を入れて、デコードをする例
str型で表示させるには、python3 と python2 で違うので、ソース内のコメントを見てください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from email.mime.text import MIMEText from email.header import decode_header msg = MIMEText("body ") msg["Subject"] = "=?ISO-2022-JP?B?GyRCRnxLXDhsGyhC?=" decoded = decode_header(msg["Subject"]) # decoded[0][0]バイト列 # decoded[0][1]エンコード方式 # str として表示するなら(python3) print(decoded[0][0].decode(decoded[0][1])) # str として表示するなら(python2) print(unicode(decoded[0][0], decoded[0][1]).encode("utf-8")) |