2012-03-16 30 views
71

estoy usando la gema premailer-rails3 que tira de los estilos en línea para los mensajes de correo electrónico HTML, y estoy tratando de hacerlo funcionar con Twitter arranque.¿Alguien ha recibido correos electrónicos HTML trabajando con Twitter Bootstrap?

https://github.com/fphilipe/premailer-rails3

Parece que algunos estilos vienen en forma correcta, pero no todos ellos. Me pregunto si alguien tiene un buen ejemplo de cómo obtener su Twitter Bootstrap css (modificado o no) en un correo electrónico html.

Gracias!

+15

Los clientes de correo electrónico son muy difíciles de diseñar. Con todo el CSS complejo de bootstrap, no creo que funcione. Será mejor que te despojes de lo que puedas y uses tablas y estilos en línea para llegar al estilo que quieras, o cerrar. –

+0

Tengo el mismo problema. Creo que lo que terminaré haciendo es hacer el correo electrónico, tomar una captura de pantalla de cómo el CSS lo hace ver sin texto, y luego en el HTML usando la imagen de captura de pantalla junto con el texto. Es una solución desagradable, pero debería hacer el trabajo. – gsingh2011

+0

@ gsingh2011 Solo recuerde que todas las Outlook y Gmail (y probablemente otras) no muestran imágenes antes del permiso del usuario. Significa que muchos de sus suscriptores verán un marcador de posición en lugar de una imagen como primera impresión. – gshilin

Respuesta

70

Si usted quiere decir "¿Puedo usar la presentación estilística de Bootstrap en un correo electrónico?" entonces puedes, aunque yo no conozco a nadie que lo haya hecho todavía. Sin embargo, necesitará recodificar todo en tablas.

Si después de funcionalidad, que depende de donde sus correos electrónicos son vistos. Si una proporción significativa de sus usuarios está en Outlook, Gmail, Yahoo o Hotmail (y estos normalmente suman alrededor del 75% de los clientes de correo electrónico), entonces no es posible obtener una gran bondad de Bootstrap.Mac Mail, iOS Mail y Gmail en Android son mucho mejores en la renderización de CSS, por lo que si se dirige principalmente a dispositivos móviles, no es tan malo.

  • JavaScript - completamente fuera de los límites. Si lo intenta, probablemente vaya directamente al correo electrónico del correo electrónico (una carpeta de correo no deseado). Esto significa que LESS también está fuera de límites, aunque obviamente puede usar los estilos CSS resultantes si así lo desea.
  • CSS en línea es mucho más seguro de usar que cualquier otro tipo de CSS (incrustado es posible, vinculado es un no definitivo). Las consultas de medios son posibles, por lo que puede tener algún tipo de diseño receptivo. Sin embargo, hay una larga lista de atributos de CSS que no funcionan; esencialmente, el modelo de caja no está soportado en gran medida en los clientes de correo electrónico. Necesitas estructurar todo con tablas.
  • font-face - solo puede usar imágenes externas. Todos los demás recursos externos (archivos CSS, fuentes) están excluidos.
  • glifos y sprites: debido a la extraña implementación de imágenes de fondo (VML) de Outlook 2007, no puede usar background-repeat o position.
  • pseudo-selectores no son posibles, p. :hover, :active estados no pueden ser de estilo separado

Hay areloadsofanswerson SO, y un montón de otros enlaces en Internet en general.

+0

desearía haber leído esto antes de comenzar ... –

1

pasé algún tiempo mirando recientemente en la construcción de plantillas de correo electrónico HTML, la mejor solución que encontré fue utilizar este http://htmlemailboilerplate.com/. Desde entonces, he creado 3 plantillas bastante complejas y han funcionado bien en varios clientes de correo electrónico.

15

Estas son algunas cosas que no puede hacer con el correo electrónico:

  • incluir una sección con estilos. Apple Mail.app lo admite, pero Gmail y Hotmail no, por lo que es un no-no. Hotmail admitirá una sección de estilo en el cuerpo pero Gmail aún no lo hace.
  • Enlace a una hoja de estilo externa. No hay muchos clientes de correo electrónico compatibles con esto, lo mejor es simplemente olvidarlo.
  • Imagen de fondo/Posición de fondo. Gmail también es el culpable de esto.
  • Borrar sus flotadores. Gmail nuevamente.
  • Margen. Sip, en serio, Hotmail ignora los márgenes. Básicamente, cualquier posicionamiento de CSS no funciona.
  • Font-nada. Es probable que Eudora ignore todo lo que intente declarar con las fuentes.

Fuente: http://css-tricks.com/using-css-in-html-emails-the-real-story/

MailChimp tiene plantillas de correo electrónico se puede utilizar - here

Unos pocos más recursos que le ayudarán a

+0

1. Puede ordenar los estilos, no debe ponerlo en la cabeza, pero puede incluirlo en el cuerpo. 2. Los fondos están bien: use el atributo html de fondo en lugar de CSS. Outlook 2007/2010 requiere su propia solución ('VML'). 3. No puedes usar flotadores en absoluto, y mucho menos borrarlos. 4. Fuente-cualquier cosa: Eudora es un cliente minoritario.Obviamente, depende de su cliente (consulte análisis), pero 'font-size' le brinda mayor flexibilidad a muy bajo costo. –

26

Me disculpo por resurecting este viejo hilo, pero sólo quería que todo el mundo sabe que hay una Bootstrap muy cerca como marco CSS creada específicamente para el peinado de correo electrónico, aquí está el enlace: http://zurb.com/ink/

espero que ayude a alguien.

Ninja edición: ha sido puesto a llamarse a Foundation for Emails y el nuevo enlace es: https://foundation.zurb.com/emails.html

+5

Zurb Ink es un marco realmente bueno para correos electrónicos receptivos. –

0

El mejor enfoque se me ha ocurrido con las importaciones es el uso de Sass sobre una base seleccionada para tirar en su bootstrap (o cualquier otro) estilos en correos electrónicos según sea necesario.

En primer lugar, cree un nuevo archivo padre scss algo así como email.scss para su estilo de correo electrónico. Esto podría tener este aspecto:

// Core variables and mixins 
    @import "css/main/ezdia-variables"; 

    @import "css/bootstrap/mixins"; 
    @import "css/main/ezdia-mixins"; 

    // Import base classes 
    @import "css/bootstrap/scaffolding"; 
    @import "css/bootstrap/type"; 
    @import "css/bootstrap/buttons"; 
    @import "css/bootstrap/alerts"; 

    // nest conflicting bootstrap styles 
    .bootstrap-style { 
     //use single quotes for nested imports 
     @import 'css/bootstrap/normalize'; 
     @import 'css/bootstrap/tables'; 
    } 

    @import "css/main/main"; 

    // Main email classes 
    @import "css/email/zurb"; 
    @import "css/email/main"; 

Luego, en sus plantillas de correo electrónico, única referencia a su archivo email.css compilado, que sólo contiene los estilos de arranque seleccionados referenciados y anidados correctamente en su email.scss.

Por ejemplo, ciertos estilos de arranque van a entrar en conflicto con el estilo de mesa sensible de Zurb. Para solucionarlo, puede anidar los estilos de bootstrap dentro de una clase principal u otro selector para llamar a los estilos de tabla de bootstrap solo cuando sea necesario.

De esta forma, tiene la flexibilidad de obtener clases solo cuando sea necesario. Verás que utilizo http://zurb.com/ que es una gran biblioteca de correo electrónico receptiva para usar. Véase también http://zurb.com/ink/

Por último, utilice un premailer como https://github.com/fphilipe/premailer-rails3 mencionado anteriormente para procesar el estilo en css en línea, compilando estilos en línea solo para lo que se utiliza en esa plantilla de correo electrónico en particular. Por ejemplo, para el premailer, su archivo ruby ​​podría tener un aspecto similar a este para compilar un correo electrónico en estilo en línea.

require 'rubygems' # optional for Ruby 1.9 or above. 
    require 'premailer' 

    premailer = Premailer.new('http://www.yourdomain.com/TestSnap/view/emailTemplates/DeliveryReport.jsp', :warn_level => Premailer::Warnings::SAFE) 

    # Write the HTML output 
    File.open("delivery_report.html", "w") do |fout| 
     fout.puts premailer.to_inline_css 
    end 

    # Write the plain-text output 
    File.open("output.txt", "w") do |fout| 
     fout.puts premailer.to_plain_text 
    end 

    # Output any CSS warnings 
    premailer.warnings.each do |w| 
     puts "#{w[:message]} (#{w[:level]}) may not render properly in #{w[:clients]}" 
    end 

Hope this helps! Hemos estado luchando por encontrar un marco flexible de plantillas de correo electrónico en Pardot, Salesforce, y la respuesta automática integrada de nuestro producto y correos electrónicos diarios.

0

El truco aquí es que no desea incluir todo el bootstrap. El problema es que los clientes de correo electrónico ignorarán las consultas de medios y procesarán todos los estilos de impresión que tienen muchas declaraciones importantes.

En su lugar, solo necesita incluir las partes específicas de bootstrap que necesita. Mi archivo email.css.scss se ve así:

@import "bootstrap-sprockets"; 
@import "bootstrap/variables"; 
@import "bootstrap/mixins"; 
@import "bootstrap/scaffolding"; 
@import "bootstrap/type"; 
@import "bootstrap/buttons"; 
@import "bootstrap/alerts"; 

@import 'bootstrap/normalize'; 
@import 'bootstrap/tables'; 
1

Hola Brian Armstrong, visite this link.

Este blog le indica cómo integrar rieles con Bootstrap menos (usando premailer-carriles).

Si está utilizando Sass de arranque, se puede hacer lo mismo:

inicio mediante la importación de algunos archivos Bootstrap Sass en email.css.scss

@import "bootstrap-sprockets"; 
@import "bootstrap/variables"; 
@import "bootstrap/mixins"; 
@import "bootstrap/scaffolding"; 
@import "bootstrap/type"; 
@import "bootstrap/buttons"; 
@import "bootstrap/alerts"; 
@import 'bootstrap/normalize'; 
@import 'bootstrap/tables'; 
@import 'bootstrap/progress-bars'; 

y luego en su opinión <head> sección de añadir <%= stylesheet_link_tag "email" %>

Cuestiones relacionadas