###前提・実現したいこと
Python 3.6.2(Anaconda)32bit を使用してメール送信したいと考えています。
その際、差出人名を日本語にしたいと考えています。
使用しているPCはWindows8.1 Pro 64bitです。
###発生している問題・エラーメッセージ
送信はできたのですが、送信者名の表示がおかしくなります。
(Thunderbirdで受信したとき)
私の名前<私のメールアドレス>@xxxx.yyyy.ac.jp
xxxx >> メールサーバのコンピュータ名
yyyy >> ドメイン名
(勤務先で使用しているWebメールサービスで受信したとき)
"私の名前"<私のメールアドレス>@xxxx.yyyy.ac.jp>
xxxx >> メールサーバのコンピュータ名
yyyy >> ドメイン名
上記のように、「@xxxx.yyyy.ac.jp」と余計な文字列がくっついてしまいます。
この文字列が表示されないようにするにはどうすればよいかご教示いただけますでしょうか。
どうぞよろしくお願いいたします。
###該当のソースコード
Python
1#使用しているのはPython 3.6.2です。 2# -*- coding: utf-8 -*- 3 4import smtplib 5from email.mime.text import MIMEText 6from email.header import Header 7 8charset = 'iso-2022-jp' 9 10send_name = u'私の名前' #差出人名 11send_addr = '私のメールアドレス' #差出人のメールアドレス 12msg = MIMEText(u'これはテストメールです。\n確認をお願いします。', 'plain', charset) 13 14#差出人名+アドレス 15#'%s<%s>'でもu'%s<%s>'でも結果は同じだった 16msg['From'] = u'%s<%s>'%(str(Header(send_name.encode(charset), charset)), send_addr) 17 18#タイトル 19msg['Subject'] = Header(u'テストメールです'.encode(charset), charset) 20 21#SMTPサーバ名、ポート番号 22smtp_obj = smtplib.SMTP('SMTPサーバ名', 25) 23 24#SMTPサーバに"Hello"メッセージを送信する(必須) 25smtp_obj.ehlo() 26 27#SMTPサーバにログイン(ログイン名、パスワード) 28#>>今回この操作は使用していない 29##print('ログイン名:') 30##login_name = input() 31##print('パスワード:') 32##passwd_name = input() 33#smtp_obj.login(login_name, passwd_name) 34 35#メッセージの送信 36smtp_obj.sendmail(send_addr, '送信先メールアドレス', msg.as_string()) 37 38#最後に切断する 39smtp_obj.quit() 40
###試したこと
ちなみに、print(msg['From'])で内容を見たところ、
正しく「私の名前<私のメールアドレス>」となっていました。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/04 02:05