Quais ferramentas incorporam automaticamente o estilo CSS para criar código HTML de email? [fechadas]

122

Ao examinar http://www.campaignmonitor.com/css/, você aprende que precisa incorporar estilos embutidos em seu HTML, para que seu email seja lido em qualquer cliente de email.

Você conhece alguma ferramenta ou script para converter automaticamente um arquivo HTML com um declarado em um arquivo HTML com apenas atributos de estilo CCS embutidos?

Edit : Alguma solução Javascript (por exemplo: http://www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/ )? Com jQuery?

Pierre-Jean Coudert
fonte
3
Acabo de uma pergunta semelhante sobre as recomendações de software como um follow-up a esta: softwarerecs.stackexchange.com/questions/9983/...
Grzegorz Oledzki
Eu só tinha que resolver exatamente isso para um departamento no trabalho. Esta pergunta forneceu as etapas necessárias para resolver o problema.
Gopherkhan

Respostas:

80

Verifique o conversor online premailer.dialect.ca ou este script Python para fazer isso.

Saleh Al-Zaid
fonte
10
Looks como Premailer movido para um novo URL: premailer.dialect.ca
Matt Huggins
2
Chimpanzés Mail oferece uma grande estilo Inliner aqui: beaker.mailchimp.com/inline-css
dhornbein
1
O premailer.dialect.ca é ótimo, mas engasga com muitas páginas. É mais da metade nos meus testes. Por exemplo, tente esta página.
Nick Woodhams
Executar seu próprio servidor premailer ... github.com/TrackIF/premailer-server fácil de executar no EC2: docs.aws.amazon.com/elasticbeanstalk/latest/dg/...
Adam Lane
NENHUM deles remove a tag STYLE, que é o principal problema com o qual você lidará
Coldstar
33

Aqui está uma lista de ferramentas internas embutidas, prontas para usar, algumas mencionadas anteriormente. Se houver algum que eu tenha perdido, fique à vontade para editá-lo e adicioná-lo. Não posso prometer que cada um funcione como anunciado, então deixe comentários, mas não atire no mensageiro ...

E aqui está um que funciona em sentido inverso (sem alinhar o seu css)

John
fonte
3
O MailerMailer foi o único que funcionou para mim, mantendo a formatação intacta.
precisa saber é o seguinte
20

Se você deseja ter uma solução PHP, pode tentar CssToInlineStyles .

Chiborg
fonte
2
esse script php está bem escrito. ele não lida com a bandeira! important, mas é um ótimo script.
Perry Tew
8

Eu escrevi uma biblioteca Node.js chamada Styliner que alinha CSS em Javascript do lado do servidor.

Também suporta folhas de estilo MENOS (e suporta plugins para outros formatos)

SLaks
fonte
7

Você pode dar uma olhada no PostageApp .

Uma de suas características realmente fortes é que ele possui um sistema de modelagem muito robusto que pode incorporar automaticamente HTML e CSS sem problemas.

( Divulgação completa: Eu sou o gerente de produto do PostageApp.)

JonLim
fonte
então você está fazendo CSS embutido no final da cadeia de processamento (logo antes de enviar o e-mail para alguém)?
Zazi
6

Isso pode ser um pouco tarde demais, mas se você deseja tornar o seu HTML o melhor possível para o marketing por email (inserindo seu CSS e usando várias outras ferramentas interessantes), use o Premailer . É gratuito e, é claro, feito em parceria com o próprio CampaignMonitor.

Espero que ajude.

André Armenni
fonte
+1 para o Premailer. Ele possui um formulário da Web e uma API que você pode usar para integrá-lo a qualquer plataforma. Se você estiver usando o node.js, existe um wrapper aqui .
Jed Watson
6

Estou um pouco atrasado para o jogo, mas espero que isso ajude alguém.

Encontrei esse pequeno método jQuery / javascript que pode ser incorporado a uma página - http://devintorr.es/blog/2010/05/26/turn-css-rules-into-inline-style-attributes-using-jquery /

Editei um pouco para dar suporte ao IE e também para uma página com vários arquivos CSS anexados, aplicando estilos na ordem correta.

$(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();
        });

A página pode ser copiada / colada no corpo do email.

John C
fonte
por que você remove o script? E aqueles removem a execução que eu acho que deveriam sair do loop for.
Jcubic
@jcubic Você está certo: o posicionamento da execução de remoção, eu vou editar. A remoção do script estava no meu código original, eu queria um HTML mais limpo, com apenas o que era realmente necessário para exibir a página.
John C
Muito obrigado por esse script conciso, estou procurando há horas e esta é a solução mais limpa que encontrei.
#
1
Estava no mesmo barco que @kerzek. Isso funcionou até certo ponto, mas alguns estilos foram confusos. No entanto, esta versão do código funcionou excelente (testada e tudo): devintorr.es/blog/2010/05/26/…
radu.luchian
5

Não basta simplesmente incorporar seu CSS. Não há padrões observados sobre como um email em HTML será mostrado em qualquer cliente de email usado. Todos fazem isso de maneira diferente e, quanto mais você cria seu email, maior a probabilidade de que ele entre em uma quantidade maior de clientes. Muitos profissionais nesse espaço simplesmente usam imagens e tabelas e talvez algumas cores de fundo, mas nada mais. Sempre inclua um link para um site que tenha uma cópia de trabalho do email e sempre forneça uma variante de texto sem formatação.

Bjorn
fonte
1

Para programadores PHP: verifique este conversor online ou este script PHP para fazer isso.

Peter Krauss
fonte