E-posta HTML kodu oluşturmak için CSS stilini otomatik olarak satır içi yapmak için hangi araçlar? [kapalı]


122

Http://www.campaignmonitor.com/css/ adresine baktığınızda, e-postanızın herhangi bir posta istemcisinde okunması için HTML'nize satır içi stilleri yerleştirmeniz gerektiğini öğrenirsiniz.

Bildirilmiş bir HTML dosyasını yalnızca satır içi CCS stil niteliklerine sahip bir HTML dosyasına otomatik olarak dönüştürmek için herhangi bir araç veya komut dosyası biliyor musunuz?

Düzenleme : Herhangi bir Javascript çözümü (yani: http://www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/ )? JQuery ile mi?


3
Bunun ardından Yazılım Önerileri ile ilgili benzer bir soru sordum: softwarerecs.stackexchange.com/questions/9983/…
Grzegorz Oledzki

İşteki bir departman için tam olarak bu şeyi çözmem gerekiyordu. Bu soru, sorunu çözmek için gerekli adımları sağladı.
Gopherkhan

Yanıtlar:


80

Bunu yapmak için premailer.dialect.ca çevrimiçi dönüştürücüyü veya bu Python komut dosyasını kontrol edin.


10
Görünüşe göre Premailer yeni bir URL'ye taşındı: premailer.dialect.ca
Matt Huggins

2
Posta şempanze burada harika bir stil inliner sunuyor: beaker.mailchimp.com/inline-css
dhornbein

1
premailer.dialect.ca harika, ancak birçok sayfada boğuluyor. Testlerimin yarısından fazlası var. Örneğin, bu sayfayı deneyin.
Nick Woodhams

Kendi ön yükleme sunucunuzu çalıştırın ... github.com/TrackIF/premailer-server ec2'de çalıştırması kolay: docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
Adam Lane

Bunlardan HİÇBİRİ, başa çıkacağınız ana sorun olan STYLE etiketini kaldırır
Coldstar

33

İşte web tabanlı kullanıma hazır satır içi araçlarının bir listesi, daha önce birkaçından bahsedilmişti. Kaçırdığım herhangi bir şey varsa, onları düzenlemekten ve eklemekten çekinmeyin. Her işin ilan edildiği gibi söz veremem, bu yüzden yorumları bırakın, ancak haberciyi vurmayın ...

Ve işte ters yönde çalışan bir tane (css'inizi ters çevirerek)


3
MailerMailer, biçimlendirmeyi olduğu gibi korurken benim için çalışan tek kişiydi.
Jeshurun



8

Styliner adında bir Node.js kitaplığı yazdımCSS'yi sunucu tarafı Javascript'te .

LESS stil sayfalarını da destekler (ve diğer formatlar için eklentileri destekler)


7

PostageApp'e bir göz atmak isteyebilirsiniz .

Gerçekten güçlü özelliklerinden biri, HTML ve CSS'yi herhangi bir sorun olmadan otomatik olarak satır içi yapabilen çok sağlam bir şablonlama sistemine sahip olmasıdır.

( Tam Açıklama: Ben PostageApp Ürün Yöneticisiyim.)


yani işleme zincirinin sonunda (e-postayı birine göndermeden hemen önce) CSS satır içi yapıyor musunuz?
zazi

6

Bu biraz geç olabilir, ancak HTML'nizi e-posta pazarlaması için mümkün olan en iyi hale getirmek istiyorsanız ( css'nizi satır içine alarak ve bir dizi başka harika araç kullanarak), Premailer'ı kullanın. . Ücretsizdir ve elbette CampaignMonitor ile ortaklaşa yapılmıştır.

Umarım yardımcı olur.


Premailer için +1. Hem bir web formu hem de herhangi bir platforma entegre etmek için kullanabileceğiniz bir API var. Node.js kullanıyorsanız, burada bir sarmalayıcı var .
Jed Watson

6

Oyuna biraz geç kaldım ama umarım bu birine yardımcı olur.

Bir sayfaya gömülebilen bu küçük jQuery / javascript yöntemini buldum - http://devintorr.es/blog/2010/05/26/turn-css-rules-into-inline-style-attributes-using-jquery /

IE'yi desteklemek ve ayrıca stilleri doğru sırayla uygulayan birden fazla CSS dosyası içeren bir sayfayı desteklemek için biraz düzenledim.

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

Sayfa daha sonra e-posta gövdesine kopyalanabilir / yapıştırılabilir.


neden komut dosyasını kaldırıyorsun? Ve bence yürütmeyi kaldıranlar for döngüsü dışına çıkmalı.
jcubic

@jcubic Haklısınız: kaldırmayı yürütme yerleşimini, düzenleyeceğim. Komut dosyası kaldırma işlemi orijinal kodumdaydı, yalnızca sayfayı görüntülemek için gerçekten gerekli olanı içeren daha temiz HTML istedim.
John C

Bu kısa senaryo için çok teşekkürler, saatlerdir arıyordum ve bulduğum en temiz çözüm bu.
kerzek

1
@Kerzek ile aynı gemideydi. Bu bir ölçüde işe yaradı, ancak bazı stiller karıştı. Bununla birlikte, kodun bu sürümü mükemmel çalıştı (test edildi ve her şey yapıldı): devintorr.es/blog/2010/05/26/…
radu.luchian

5

Sadece CSS'nizi satır içi yapmak yeterli değildir. Hangi e-posta istemcisi kullanılırsa kullanılsın, HTML e-postanın nasıl gösterileceğine dair gözlemlenen standartlar yoktur. Hepsi bunu farklı şekilde yapıyor ve e-postanızı ne kadar çok tasarlarsanız, daha fazla sayıda istemciye girme olasılığı o kadar artar. Bu alandaki pek çok profesyonel sadece resimleri ve tabloları ve belki bazı arka plan renklerini kullanır, ancak başka hiçbir şey kullanmaz. Her zaman e-postanın çalışan bir kopyasını içeren bir web sitesine bağlantı ekleyin ve her zaman düz metin varyantı sağlayın.




Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.