2013-01-01 17 views
8

Gelen e-postayı ayrıştırmak için mailgun (bu sorunun mailgunla ilgisi olmamasına rağmen) kullanıyorum ve mailgun, ayrıştırılmış e-postayı sunucuma gönderecek. Yayını aldığımda, çok parçalı e-posta için html kodunu aldım. Ben raylar kullanıyorum benim kullanıcıya html e-posta görüntülemek istediğiniz, bu yüzden AncakBir html kodu bloğu için temel veya önyükleme stili nasıl devre dışı bırakılır?

<div> 
    <%= raw(message.body_html) %> 
</div> 

gibi bir şey, onu ben yahoo veya hotmail aynı e-postayı görüntülerken (Farklı biliyor mu farklı görünüyor bulunuyor e-posta istemcisi, html e-postasını farklı şekilde gösterecektir, ancak benimki çok farklı görünüyor. İşte

benim kendini inşa istemci üzerinde görünür: html email display in my self-built client

Ve bu aynı e-posta için yahoo dilinde böyle görünüyor: html email display in yahoo

benim stil çerçeve olarak Zurb Foundation kullanabilirsiniz. Ancak, ben e-posta html kendi in-line stil ile geliyor sanırım, ben gibi görünüyor gibi görünüyor, ama diğer istemciler ile yeterince benzer görünmelidir kod bakmak.

Yani en iyi uygulama html kod bloğu almak ve kendi stilini üzerine yazarak diğer çerçeveler izin vermeden olduğu gibi görüntülemek istediğiniz varsayarak html e-posta görüntülemek için nedir?

Dahası, bu mümkün Tabii

<div> 
    <% disable_foundation_styling begin %> 
    <%= raw(message.body_html) %> 
    <% end %> 
</div> 

gibi, örneğin, bir kod bloğu için stil (yani madde için veya twitter ön yükleme alanı) bir şey Vakfı devre dışı bırakmaktır "disable_foundation_styling" sadece benim hayal gücüm.

Şimdiden teşekkürler!

!!!!!!!!! Güncelleme 1/1/2013 !!!!!!!!!!!!!!! @Alex L. önerildiği gibi

denedim ama beklendiği gibi sessiz çalışır değil. iframe, görünümdeki her şeyi olduğu gibi işler (aşağıdaki resme bakın) ve bu anlaşılabilir bir durumdur, çünkü iframe içeriği yalnızca başka bir denetleyicinin görünümüdür, bu durumda raylar tüm uygulama düzeni şablonlarını da içerecektir. Ancak, araç çubuğu benim en büyük endişem değil, iframe içindeki şey tam olarak önceki gibi görünüyor. enter image description here

iframe yapmanın yolu olmayabilir sanırım. Hem gmail hem de yahoo'nun koduna bakıyorum ve iframe kullanmıyorlar. Bunun yerine, html e-postasını oluşturmak için iç içe çok derin kullanırlar. Html e-postasının bir kısmı yahoo ve gmail için aynı koda sahiptir, ancak yahoo her bir DOM öğesi için kendi kimliğini ekler.

Yani şimdi ben nasıl göründüğünü etkilenen bazı vakıf stil yoktur sanıyorum.

Daha öğrendikleri zaman güncellenir. Bildiğim kadarıyla

cevap

2

seçici DOM bir alt kümesi içinde sayfanızın CSS görmezden bir tarayıcı talimat mümkün değildir. Sayfanın mevcut stilini açıkça geçersiz kılmalısınız. Ancak, iframe öğenize sahipseniz, söz konusu çerçevenin içeriği, içerilen sayfaya uygulanan stillerden bağımsız olarak oluşturulacaktır.Böylece ayrı bir kontrolör oluşturabilir ve sadece mesajınızın içeriğini görüntüleyebilir ve bunu iframe için kaynak olarak kullanabilirsiniz.

+0

Bu akla yatkın geliyor, bu gece denememe ve sonucu güncellememe izin verin, çok teşekkürler. – lionel

+0

ortaya çıktığında hile yapmıyor, lütfen daha fazla ayrıntı için sorudaki güncellemeye bakın. Önerileriniz için teşekkürler. – lionel

+0

Denetleyici ve iframe içinde görüntülenen görünüm için özel bir düzen kullanmalısınız veya denetleyici 'render: layout => false 'yapmalıdır. Satır içi sayfa oluşturmak için normal uygulama düzeninizi kullanırsanız, Zurb, Bootstrap, vb., Iframe içinde hala etkin olacaktır. –

İlgili konular