Gmail 显示电子邮件的 HTML 和文本以及 HTML 部分
Posted
技术标签:
【中文标题】Gmail 显示电子邮件的 HTML 和文本以及 HTML 部分【英文标题】:Gmail displays both HTML and text and HTML parts of email 【发布时间】:2014-10-22 15:11:20 【问题描述】:我正在使用 Python 向 gmail 帐户发送电子邮件。这是我正在使用的代码
msg = email.mime.multipart.MIMEMultipart()
msg['From'] = 'myemail@gmail.com'
msg['To'] = 'toemail@gmail.com'
msg['Subject'] = 'html test'
msg_html = email.mime.text.MIMEText('<html><head></head><body><b>This is HTML</b></body></html>', 'html')
msg_txt = email.mime.text.MIMEText('This is text','plain')
msg.attach(msg_html)
msg.attach(msg_txt)
#SNIP SMTP connection code
smtpConn.sendmail('myemail@gmail.com', 'toemail@gmail.com', msg.as_string())
当我在 gmail 中查看这封电子邮件时,HTML 和文本版本都显示如下:
这是 HTML
这是文字
应该是显示文本或 html,是什么导致了这种行为。
【问题讨论】:
查看您发送的内容...这是关于您发送的内容的问题,而不是 gmail 的呈现方式 【参考方案1】:当消息需要以multipart/alternative
发送时,它以multipart/mixed
(this is the default)发送。 mixed
表示每个部分包含不同的内容,都应该显示,而alternative
表示所有部分的内容相同,格式不同,只应该显示一个。
msg = email.mime.multipart.MIMEMultipart("alternative")
此外,您应该将这些部分按优先顺序递增,即 HTML 之前的文本。 MUA(在本例中为 GMail)将呈现它知道如何显示的最后一部分。
请参阅Wikipedia article on MIME,了解有关格式化 MIME 消息的详细介绍。
【讨论】:
以上是关于Gmail 显示电子邮件的 HTML 和文本以及 HTML 部分的主要内容,如果未能解决你的问题,请参考以下文章
发送文本和 HTML 电子邮件 - 为啥 Gmail 总是选择文本版本?
在 Yahoo 和 Gmail 中显示时,HTML 电子邮件的内联 CSS 不断被剥离