2

我无法在 python 中发送带有正文的电子邮件作为多部分电子邮件。我尝试过的所有内容都导致所有内容都作为附件,并且我无法让文本或 html 显示在正文中。

msg = MIMEMultipart()
if msg_mime_type == 'text' or not msg_mime_type:
    new_body = MIMEText(body, 'text')
elif msg_mime_type == 'image':
    new_body = MIMEImage(body)
elif msg_mime_type == 'html':
    new_body = MIMEText(body, 'html')
new_body.add_header('Content-Disposition', 'inline', filename='body')
msg.set_payload(new_body) #also tried msg.attach(new_body)

我需要使用 aMultipart以便我还可以添加附件,但为了简单起见,我保留了该代码。

4

1 回答 1

5

您需要指定这些部分是彼此的替代品,例如multipart/alternativemime 类型:

msg = MIMEMultipart('alternative')

默认值为mixed; 请参阅电子邮件库示例

请注意,要创建包含附件和替代(HTML / CSS)选项的电子邮件,您需要有一个顶级multipart/related容器,其中包含alternative作为第一个条目的部分。

于 2012-08-16T21:32:27.353 回答