HTML电子邮件显示为纯文本?

时间:2015-06-21 13:44:59

标签: python html email flask

我正在使用python框架Flask发送带有以下代码的HTML电子邮件:

HTML电子邮件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Email</title>
</head>
<body>
    <h1>This is a heading</h1>
    <p>This is a paragraph</p>
</body>
</html>

Flask(使用Flask-Mail):

html = render_template('email/activate.html', confirmURL=confirmURL)
        msg = Message('Please confirm your email', sender='email@gmail.com', recipients=[email])
        msg.body = html
        mail.send(msg)

我保持基本测试电子邮件是否正确显示。我将电子邮件发送到Gmail和Outlook帐户,但两者似乎都只显示纯文本格式。我尝试使用不同的HTML代码段,但会出现相同的结果。我不确定我的代码,电子邮件帐户或Flask是否存在问题。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我自己想出来的问题是:

<强>之前:

page = render_template('email/activate.html', confirmURL=confirmURL)
msg = Message('Please confirm your email', sender='pavsidhu98@gmail.com', recipients=[email])
msg.body(page)
mail.send(msg)

<强>后:

page = render_template('email/activate.html', confirmURL=confirmURL)
msg = Message('Please confirm your email', html=page, sender='pavsidhu98@gmail.com', recipients=[email])
mail.send(msg)

因此,不要将HTML作为msg.body(page)添加到电子邮件中,而是将其作为Message()的参数放入,如下所示:html=page