在内部为电子邮件模板包含外部样式表

Sla*_*off 6 html css email stylesheet jinja2

我正在尝试为我的网站制作一些不错的电子邮件模板,但我对精心设计的代码和功能的渴望之间存在冲突。

我的问题是我所有的电子邮件模板都像标准模板一样格式化:

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet"...>
    </head>
    <body>
        Some stuff
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

它作为网页显示得很好,但是在尝试将其作为格式化的电子邮件发送时,它本质上只是发送了该Some stuff部分,这意味着没有任何格式可以真正传达它。

我当前的电子邮件代码如下所示:

message = Message(
    subject="Subject",
    html= render_template(
        'emails/confirmation_email.html',
        confirmation_code=confirmation.confirmation_code
    ),
    sender = ("sender", "sender@gmail.com")
)
Run Code Online (Sandbox Code Playgroud)

我正在使用 Jinja2 模板和 Flask-Mail 扩展。

基本上,我真的很想在我的电子邮件中包含这些样式表,但我真的反对在样式标签中包含所有内容。

Joh*_*ohn 1

您需要将 CSS 内联到 HTML 电子邮件中。这是因为某些电子邮件客户端(例如 Gmail)会删除您的<style>标签。以下是支持列表(单击 pdf 链接查看完整图表)。

如果您更喜欢在标签内以传统方式工作,有几种 CSS 内联工具<style>可以让您的工作变得更轻松。但是,您永远不应该将 CSS 放在外部文件中。