2

我有一个 Django 驱动的 WebApp,它偶尔需要向我的用户发送漂亮的 HTML 电子邮件。

我正在学习如何使用 Django 发送 HTML 电子邮件。这是我正在遵循的说明。它们非常简单而且很好: http: //www.djangofoo.com/250/sending-html-email

按照这些说明,我可以发送 HTML 电子邮件。但是,我要发送的电子邮件当然应该共享我的 webApp 的样式和外观。我网站上的每个 Django 模板都在顶部包含一堆 CSS,以确保外观一致。但是,当我只是将该模板作为 HTML 电子邮件发送时,样式不会在电子邮件中出现。通过 Django 发送 HTML 电子邮件时 CSS 不起作用吗?我是否需要手动明确设置要用于电子邮件的 HTML 模板中每个元素的字体、颜色、粗体、斜体?其他人如何做到这一点?

4

4 回答 4

2

如果我想要漂亮的电子邮件,我倾向于使用与网站相同的 CSS 样式,而不是手动设置电子邮件中的所有样式。但是,电子邮件需要内联样式,为此我使用了inlinestyler模块,该模块将获取 HTML 和 CSS 文件,并在发送电子邮件之前内联设置相关样式。

还有一些事情需要考虑,如果你粗心,你会收到巨大的电子邮件,因为你在任何地方都使用了大的样式设置,而且许多电子邮件客户端不会正确定位等等,所以无论如何你可能不得不为你的电子邮件制作自定义 CSS 样式。但即使你这样做了,inlinestyler 还是很有用的,因为你可以通过 CSS 和 HTML 分开获得更多可维护的电子邮件。

于 2013-07-02T05:06:52.897 回答
2

CSS 很难在 html 电子邮件中正确使用……一般规则是使用内联样式并尽量保持基本。

这个SO question中有一些很好的资源,可用于指导设计 html 电子邮件。

于 2013-07-02T04:55:10.013 回答
1

一些电子邮件客户端支持 CSS,而其他客户端不支持 CSS。一些客户端支持内联样式,而另一些则不支持。您可以在此处看到一个相当详细的列表。大部分可以用 HTML/CSS 完成的事情都可以用内联样式和(喘气的)表格布局来完成,但其中一些是根本不可能的。@Lennart 提到的工具是非常宝贵的,但“只是内联所有内容”并不能解决许多问题。(伪类是一个重点(a:hover 受 Outlook 支持,而 .classname:hover 不支持),背景图像也是如此(尽管有一个 hack 可以使其工作))。

我想我的基本观点是,您可以尝试使用 inlinestyler 或类似工具来缩短流程,但您需要保留一组单独的文件,并且您肯定会进行一系列手动调整。

于 2013-07-02T05:35:35.230 回答
0

我想你会发现电子邮件客户端不会检索 css。

相反,在您的电子邮件中,将 CSS 文件的内容直接放入电子邮件中,并附在电子邮件<style>周围</style>

于 2013-07-02T04:10:45.750 回答