Flask render_template() return 原始 HTML,未处理
Flask render_template() return raw HTML, not processed
我正在使用 flask 邮件,我想在我的邮件中插入呈现的 HTML。
这是代码:
控制器:
msg = Message("test", sender='xxx@gmail.com', recipients=[user.get("email")])
msg.body = render_template('/assets/views/emailing/notification.html', name=user.get("name"))
mail.send(msg)
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello, World!</h1>
{% endif %}
</body>
</html>
所以我希望得到一个呈现的电子邮件,或者至少 html 作为文本但键被值替换。
这是我得到的:
https://i.imgur.com/efDMyDM.png
有什么线索吗?
当您发送 HTML 电子邮件时,您需要设置 html
属性而不是 body
,如下所示:
html = render_template('/assets/views/emailing/notification.html', name=user.get("name"))
msg = Message("test", sender='xxx@gmail.com', recipients=[user.get("email")], html=html)
mail.send(msg)
我正在使用 flask 邮件,我想在我的邮件中插入呈现的 HTML。
这是代码:
控制器:
msg = Message("test", sender='xxx@gmail.com', recipients=[user.get("email")])
msg.body = render_template('/assets/views/emailing/notification.html', name=user.get("name"))
mail.send(msg)
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello, World!</h1>
{% endif %}
</body>
</html>
所以我希望得到一个呈现的电子邮件,或者至少 html 作为文本但键被值替换。
这是我得到的:
https://i.imgur.com/efDMyDM.png
有什么线索吗?
当您发送 HTML 电子邮件时,您需要设置 html
属性而不是 body
,如下所示:
html = render_template('/assets/views/emailing/notification.html', name=user.get("name"))
msg = Message("test", sender='xxx@gmail.com', recipients=[user.get("email")], html=html)
mail.send(msg)