哪些工具可以自动内联CSS样式来创建电子邮件HTML代码?[关闭]


122

当您查看http://www.campaignmonitor.com/css/时,您了解到需要在HTML中嵌入内联样式,以便在任何邮件客户端中读取电子邮件。

您是否知道有任何工具或脚本可以将带有声明的HTML文件自动转换为仅具有内联CCS样式属性的HTML文件?

编辑:任何Javascript解决方案(即:http : //www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/)?使用jQuery吗?


3
我刚才问的软件推荐一个类似的问题作为后续工作这一个:softwarerecs.stackexchange.com/questions/9983/...
格热戈日Oledzki

我只需要为工作部门解决这个问题。该问题提供了解决此问题的必要步骤。
Gopherkhan

Answers:


80

检查premailer.dialect.ca在线转换器或此Python脚本来执行此操作。


10
看起来Premailer移到了新的URL:premailer.dialect.ca
Matt Huggins,2010年

2
Mail黑猩猩在这里提供了很棒的样式:beaker.mailchimp.com/inline-css
dhornbein 2012年

1
premailer.dialect.ca很棒,但是在很多页面上都令人窒息。在我的测试中占了一半以上。例如,尝试此页面。
Nick Woodhams 2012年

运行自己的服务器premailer ... github.com/TrackIF/premailer-server:易在EC2上运行docs.aws.amazon.com/elasticbeanstalk/latest/dg/...
亚当巷

他们中没有一个实际上删除了STYLE标签,这是您将要处理的主要问题
Coldstar,2016年

33

这是基于Web的随时可用的内联工具的列表,前面已经提到了几个。如果我错过了任何内容,请随时进行编辑和添加。我不能保证每件作品都如广告所言,所以不要发表评论,但不要开枪。

这是一种反向工作的方法(取消内联CSS)


3
MailerMailer是保持格式不变的唯一对我有用的工具。
Jeshurun 2014年



8

我编写了一个名为Styliner的Node.js库,该库可以内联服务器端Javascript中的CSS。

它还支持LESS样式表(并支持其他格式的插件)


7

您可能想看看PostageApp

它真正强大的功能之一是它具有非常强大的模板系统,可以自动内联HTML和CSS,而不会出现任何问题。

完全公开:我是PostageApp的产品经理。)


所以您要在处理链的末尾进行CSS内联(在将电子邮件发送给某人之前)?
zazi 2012年

6

这可能为时已晚,但是如果您想使HTML成为电子邮件营销的最佳方式(通过内联css并使用许多其他出色的工具),请使用Premailer。它是免费的,当然是与CampaignMonitor本身合作制作的。

希望能帮助到你。


+1为Premailer。它同时具有Web表单和API,可用于将其集成到任何平台中。如果您使用的是node.js,则这里有一个包装器。
杰德·沃森

6

我玩游戏有些迟了,但希望这会对某人有所帮助。

我发现了可以嵌入到页面中的这个不错的jQuery / javascript小方法-http://devintorr.es/blog/2010/05/26/turn-css-rules-into-inline-style-attributes-using-jquery /

我已经对其进行了一些编辑,以支持IE,并且还支持以正确的顺序应用样式的附加了多个CSS文件的页面。

$(document).ready(function ($) {
            var rules;
            for(var i = document.styleSheets.length - 1; i >= 0; i--){
                if(document.styleSheets[i].cssRules)
                    rules = document.styleSheets[i].cssRules;
                else if(document.styleSheets[i].rules)
                    rules = document.styleSheets[i].rules;
                for (var idx = 0, len = rules.length; idx < len; idx++) {
                    if(rules[idx].selectorText.indexOf("hover") == -1) {
                        $(rules[idx].selectorText).each(function (i, elem) {
                            elem.style.cssText = rules[idx].style.cssText + elem.style.cssText;
                        });
                    }
                }
            }
            $('style').remove();
            $('script').remove();
            $('link').remove();
        });

然后可以将该页面复制/粘贴到电子邮件正文中。


为什么删除脚本?我认为那些删除执行应该超出for循环。
jcubic 2013年

@jcubic您正确的re:执行删除的位置,我将进行编辑。删除脚本是在我的原始代码中,我只需要显示页面真正所需的更整洁的HTML。
John C

非常感谢您提供的简洁脚本,我已经花了几个小时了,这是我找到的最干净的解决方案。
kerzek

1
与@kerzek在同一条船上。这在某种程度上起作用了,但是有些样式搞砸了。:此代码的版本但是工作优秀(测试evertything)devintorr.es/blog/2010/05/26/...
radu.luchian

5

仅仅内联CSS是不够的。对于使用任何电子邮件客户端的HTML电子邮件显示方式,没有观察到的标准。他们的做法各不相同,设计电子邮件的次数越多,越有可能打断更多的客户。这个领域的许多专业人员只是使用图像和表格,也许还使用一些背景色,但没有别的。始终包含指向具有电子邮件工作副本的网站的链接,并始终提供纯文本变体。


5

tikku的javascript解决方案:https ://tikku.com/open-source/utilities/css-inline-transformer/



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.