我正在使用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是否存在问题。
提前致谢。
答案 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