質問するログイン新規登録

回答編集履歴

1

追記

2018/06/01 06:38

投稿

otn
otn

スコア86374

answer CHANGED
@@ -3,4 +3,9 @@
3
3
  ```Python
4
4
  msg['From'] = '%s <%s>'%(Header(send_name.encode(charset),charset).encode(),send_addr)
5
5
  print(msg['From'])
6
- ```
6
+ ```
7
+
8
+ 追記:
9
+ 解説すると、元のコードでは、`msg['From']`に日本語が含まれているので、日本語部分じゃなくて文字列全体(※)がBエンコードされ、`=?utf-8?b?~~~=?=`のような文字列になり、MTAで「ドメイン部を含まない文字列」と判断されてドメイン部が付加されます。メールソフトではBデコードされるので、お書きの現象になります。
10
+
11
+ ※部分の仕様(マルチバイトも字部分だけじゃなくて全体がエンコードされる)はバグに近い仕様だと思いますが、そういう仕様のメジャーなメールソフトもあったかと思います。