from email.header import Headerfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextdef contains_non_ascii_characters(str): return not all(ord(c) < 128 for c in str)def add_header(message, header_name, header_value): if contains_non_ascii_characters(header_value): h = Header(header_value, 'utf-8') message[header_name] = h else: message[header_name] = header_value return message............msg = MIMEMultipart('alternative')msg = add_header(msg, 'Subject', subject)if contains_non_ascii_characters(html): html_text = MIMEText(html.enpre('utf-8'), 'html','utf-8')else: html_text = MIMEText(html, 'html')if(contains_non_ascii_characters(plain)): plain_text = MIMEText(plain.enpre('utf-8'),'plain','utf-8') else: plain_text = MIMEText(plain,'plain')msg.attach(plain_text)msg.attach(html_text)
无论您的文本是否包含非ASCII字符,这都应该为您提供适当的文本和标题编码。这也意味着您不会不必要地自动使用base64编码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)