Ich benutze mailgun (obwohl diese Frage nichts mit mailgun zu tun hat), um die eingehende E-Mail zu parsen und mailgun wird die geparste E-Mail an meinen Server senden. Als ich die Post erhielt, erhielt ich den HTML-Code für die mehrteilige E-Mail. Ich möchte die HTML-E-Mail für meinen Benutzer anzeigen, ich verwende Schienen, also ist es so etwas wie
%Vor%Es sieht jedoch anders aus, als wenn ich die gleiche E-Mail in Yahoo oder Hotmail sehe (Ich weiß, dass ein anderer E-Mail-Client die HTML-E-Mail anders anzeigt, aber meine sieht drastisch anders aus).
So sieht es auf meinem selbst gebauten Client aus:
Und so sieht es in Yahoo für dieselbe E-Mail aus:
Ich benutze Zurb Foundation als mein Styling-Framework. Allerdings denke ich, dass die E-Mail html mit einem eigenen In-Line-Design geliefert wird. Ich schaue mir den Code an, der so aussieht, wie er es tut, und dann sollte er mit anderen Clients ähnlich aussehen.
Was ist die beste Vorgehensweise, um HTML-E-Mails anzuzeigen, wenn Sie einen HTML-Code-Block erhalten und ihn so anzeigen möchten, wie er ist, ohne dass andere Frameworks seinen Stil überschreiben?
Darüber hinaus ist es möglich, Foundation (oder auch Twitter Bootstrap) für einen Block von Code zu deaktivieren, zum Beispiel
%Vor%Natürlich ist "disable_foundation_styling" nur meine Vorstellungskraft.
Vielen Dank im Voraus!
!!!!!!!!! Update 1/1/2013 !!!!!!!!!!!!!!!
Wie @Alex L. vorgeschlagen hat, habe ich versucht, aber es funktioniert nicht ruhig wie erwartet. Der Iframe rendert alles in der Ansicht wie zuvor (siehe Bild unten), und das ist verständlich, da der Iframe-Inhalt nur die Ansicht eines anderen Controllers ist, der in den Fallschienen auch alle Anwendungslayout-Vorlagen enthält. Allerdings ist die Symbolleiste nicht meine größte Sorge, es ist, was innerhalb des Iframe genau so aussieht wie zuvor.
Ich vermute, dass iframe nicht der richtige Weg dafür ist. Ich schaue auf den Code von Google Mail und Yahoo, und sie verwenden nicht iframe. Stattdessen verwenden sie sehr tief verschachtelt, um die HTML-E-Mail zu rendern. Der Teil der HTML-E-Mail hat den gleichen Code für Yahoo und Gmail, außer dass Yahoo eine eigene ID für jedes einzelne DOM-Element einfügt.
So, jetzt vermute ich, dass es ein Grundstyling gibt, das sich darauf auswirkt, wie es aussieht.
Ich werde aktualisieren, sobald ich mehr herausfinden.
Nach meinem Wissen ist es nicht möglich, einen Browser anzuweisen, das CSS Ihrer Seite selektiv in einer Teilmenge des DOM zu ignorieren. Sie müssen den vorhandenen Stil der Seite explizit überschreiben.
Wenn Sie jedoch ein iframe
-Element haben, wird der Inhalt dieses Rahmens unabhängig von allen auf die umschließende Seite angewendeten Stilen gerendert. So könnten Sie einen separaten Controller erstellen und nur zum Rendern des Inhalts Ihrer Nachricht anzeigen und diesen als Quelle für iframe
verwenden.
Tags und Links html css ruby-on-rails html-email zurb-foundation