python で email を扱うときにheaderにすでに値があると普通には上書きできないです。
例えば、MIMEMultipart を使って試してみます。
1 2 3 4 5 6 7 |
from email.mime.multipart import MIMEMultipart msg = MIMEMultipart() msg["From"] = "xxxx@zzz.com" print(msg["From"]) |
新規の場合は、dictionary っぽく使って値を入れられます。
結果は、
1 2 3 |
xxxx@zzz.com |
となります。
この msg の From を更新します。普通にdictionary っぽく使うと
1 2 3 4 |
msg["From"] = "dddd@eee.com" print(msg["From"]) |
この結果は、
1 2 3 |
xxxx@zzz.com |
となり変わりません。
解決方法
replace_header を使ってください。
1 2 3 4 5 6 7 |
msg. replace_header("From", "dddd@eee.com") print(msg["From"]) この結果は、 <pre class="toolbar:2 whitespace-before:1 whitespace-after:1 lang:default decode:true "> dddd@eee.com |
subject などのエンコードされたものはどうやってやるのかは次回