いろいろ試しました。 先に結論を言ってしまうと、基本的には、文字化けないように出来ててあんまり考えなくていいです。あと、Python3でadd_charsetで文字セットいじったときの挙動がよく分かりません。 本題です。 基本のコード # -*- coding: utf-8 -*- import smtplib from email.mime.text import MIMEText from email.header import Header from email import charset con = smtplib.SMTP('localhost') con.set_debuglevel(True) cset = 'utf-8' # <---------------(文字セットの設定だよ) message = MIMEText(u'日本語のメールだよ★', 'plain', cs