Sto usando il mailgun (anche se questa domanda non ha nulla a che fare con il mailgun) per analizzare la posta in arrivo e il mailgun invierà http l'email analizzata al mio server. Quando ho ricevuto il post, ho ricevuto il codice html per l'email multiparte. voglio visualizzare l'e-mail html mio utente, io sto usando le rotaie, quindi è qualcosa di simile aCome disabilitare lo stile di fondazione o di bootstrap per un blocco di codice html?
<div>
<%= raw(message.body_html) %>
</div>
Tuttavia, ha un aspetto diverso rispetto a quando ho vista la stessa email in Yahoo o Hotmail (lo so diverso il client di posta elettronica mostrerà l'e-mail html in modo diverso, ma il mio aspetto è drasticamente diverso).
Ecco come appare sul mio cliente auto-costruito:
e questo è come appare in Yahoo per la stessa e-mail:
Io uso ZURB Foundation come il mio quadro styling. Tuttavia, penso che l'e-mail html abbia un proprio stile in-line, guardo il codice che assomiglia a quello che fa, quindi dovrebbe apparire abbastanza simile ad altri client.
Quindi qual è la procedura migliore per visualizzare l'e-mail html assumendo che si ottenga un blocco di codice html e si desideri visualizzarlo così com'è senza che altri framework sovrascrivano il proprio stile?
ulteriormente più, è possibile disabilitare Foundation (o Twitter bootstrap per questo) lo styling per un blocco di codice, ad esempio, qualcosa come
<div>
<% disable_foundation_styling begin %>
<%= raw(message.body_html) %>
<% end %>
</div>
Naturalmente "disable_foundation_styling" è solo la mia immaginazione.
Grazie in anticipo!
!!!!!!!!! Aggiornamento 1/1/2013 !!!!!!!!!!!!!!!
Come suggerito da @Alex L., ho provato ma non funziona in modo tranquillo come previsto. L'iframe rende tutto nella vista come prima (vedi immagine sotto), e ciò è comprensibile, poiché il contenuto dell'iframe è solo la vista di un altro controller, che nel caso rota includerà anche tutti i modelli di layout dell'applicazione. Tuttavia, la barra degli strumenti non è la mia più grande preoccupazione, è ciò che è dentro l'iframe, sembra esattamente come prima.
Sospetto che l'iframe non sia il modo per farlo. Guardo il codice di entrambi gmail e yahoo e non usano iframe. Invece usano nid molto profondi per rendere l'email html. La parte dell'email html ha lo stesso codice sia per yahoo che per gmail, tranne per il fatto che yahoo inserisce un id proprio per ogni singolo elemento DOM.
Quindi ora sospetto che ci sia uno stile di base che ha influito sul suo aspetto.
Aggiornerò una volta scoprirò di più.
sembra plausibile, fammi provare stasera e aggiorna il risultato, grazie mille. – lionel
si scopre che non fa il trucco, per favore guarda il mio aggiornamento nella domanda per maggiori dettagli. Grazie per i suggerimenti però. –
lionel
Dovresti utilizzare un layout speciale per il controller e visualizzare quello che viene visualizzato all'interno dell'iframe, oppure il controller dovrebbe eseguire 'rendering: layout => falso'. Zurb, Bootstrap, ecc., Saranno comunque abilitati all'interno dell'iframe se si utilizza il normale layout dell'applicazione per il rendering della pagina in linea. –