自分のTkInterを利用したGUIアプリの中で、本日メールを送る部分のコーディングを行いましたが、表題のとおり
日本語の文字を含んだ本文にすると エラーになってしまいます。
Error
1UnicodeEncodeError: 'ascii' codec can't encode characters in position 92-96: ordinal not in range(128) 2
上記エラー内容で、ネット上を検索しこれらをはじめとした記事で、とりあえずコード頭に
Python
1sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') 2
の記述を行うことが妥当な策に挙げられておりましたので、当方一先ず 「 if name == 'main':」 の直下で上記を挿入しました。
if name == 'main':
□□□□sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
しかし、状況に進展が得られず、相変わらず同じエラーを招いています。
日本語を含む本文をメール送信するには どういった対策を行えば 良いのでしょうか? メール送信の関数は現況以下となっています。
python
1 def mail_Send(): 2 smtp_host = 'XXXXXXXXXXXXXXXXXXXX' 3 smtp_port = 587 4 username = 'XXXXXXXXXXXX' 5 password = 'XXXXXXXXXXXX' 6 from_address = 'XXXXXXXXXXXXXXXXXXX' 7 to_address = 'XXXXXXXXXXXXXXXXXXXXX' 8 subject = 'This mail is a test!' 9 body = 'あいうえお' 10 message = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s" % (from_address, to_address, subject, body)) 11 12 smtp = smtplib.SMTP(smtp_host, smtp_port) 13 smtp.login(username, password) 14 result = smtp.sendmail(from_address, to_address, message)
回答1件
あなたの回答
tips
プレビュー