【发布时间】:2015-10-22 10:39:48
【问题描述】:
我正在使用我公司的 smtp 服务器使用 python 的电子邮件模块发送电子邮件。当我这样做时,我的电子邮件 html 无法正确呈现。这是我得到的:
sender = 'abc@abc.com'
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart('multipart')
msg['Subject'] = "My Report"
msg['From'] = sender
msg['To'] = ", ".join(recipients)
# Create the body of the message using html in msg_body
h = unicode(msg_body).encode("utf-8", "ignore")
# Record the MIME type
part = MIMEText(h, 'html')
# Attach parts into message container.
msg.attach(part)
pngfiles = ['image.png']
for file in pngfiles:
# Open the files in binary mode.
fp = open(file, 'rb')
img = MIMEImage(fp.read())
fp.close()
msg.attach(img)
# Send the message via local SMTP server.
s = smtplib.SMTP('send.abc.com')
s.sendmail(msg.get("From"), recipients, msg.as_string())
s.quit()
我应该做些什么不同的事情?
【问题讨论】:
-
可能与this有关?
-
如您所见,我的子类型已经是 'html'。
-
问题是我必须将字符集设置为“utf-8”。来自文档:如果 _text(第一个参数)是 unicode,则使用 _charset 的 output_charset 对其进行编码,否则按原样使用。 默认为 us-ascii。在我的情况下,第一个参数是 unicode。部分 = MIMEText(h, 'html', 'utf-8')
标签: python html python-2.7 email smtp