[python] email で、subject をデコードする

前回、エンコードしたSubjectを入れる説明をしましたが、今回はデコードの方法。

email.header.Header を使ってれば、問題ないのですがBase64でエンコードされた文字列をそのまま入ってる場合はデコードが必要です。
デコードするには、 email.header.decode_header を使います。

Base64エンコードされた subject を入れて、デコードをする例
str型で表示させるには、python3 と python2 で違うので、ソース内のコメントを見てください。

[python] email で、header の更新をしたいとき

python で email を扱うときにheaderにすでに値があると普通には上書きできないです。

例えば、MIMEMultipart を使って試してみます。

新規の場合は、dictionary っぽく使って値を入れられます。
結果は、

となります。

この msg の From を更新します。普通にdictionary っぽく使うと

この結果は、

となり変わりません。

解決方法

replace_header を使ってください。

subject などのエンコードされたものはどうやってやるのかは次回