Al crear correos electrónicos HTML, ¿deberíamos usar etiquetas html, head, body?

113

En mis vistas de correo electrónico, normalmente hago algo como ...

<dl>
   <dt>Name</dt>
   <dd>Value</dd>
</dl>

¿Debería hacerlo así?

<html>
  <head></head>
  <body>
    <dl>
       <dt>Name</dt>
       <dd>Value</dd>
    </dl>
  </body>
</html>

En otras palabras, ¿como si estuviera marcando un documento independiente?

Supongo que puedo asumir con seguridad que cualquier cliente de correo electrónico basado en web lo eliminará.

¿Cuál es la manera correcta?

alex
fuente
Por si sirve de algo, Thunderbird da salida a las html, heady bodylas etiquetas en sus mensajes.
palswim

Respuestas:

43

La forma correcta es seguir el estándar HTML . Puede validar su página HTML aquí .

Su cliente de correo debe seguirlo y descartar lo que no es compatible o lo que es inseguro como JavaScript.

ACTUALIZACIÓN: después de varios votos negativos de personas que se enojan cuando les dices que sigan los estándares, expondré algunas razones por las que seguir los estándares podría ser beneficioso aquí:

  1. un correo web dispuesto a mostrar su correo como una página completa, podría mantener su formato.
  2. un correo web simplemente eliminará las etiquetas y los atributos que no desee. Pero nunca se puede saber cuáles.
  3. Es más fácil encontrar componentes (del lado del servidor) que siguen los estándares de formato y, por lo tanto, son menos propensos a errores. Los analizadores que no sigan los estándares podrían romperse, haciendo que su correo electrónico no se muestre.
mschonaker
fuente
54
-1 La forma correcta es probarlo en los clientes relevantes. Si bien los clientes de correo deben seguir los estándares, prácticamente ninguno de ellos lo hace.
Dan Blows
27
mschonaker es correcto. Si todo el mundo comienza a seguir los estándares, entonces el uso será ... bueno ... estandarizado. De lo contrario, todos los desarrolladores tienen que implementar trucos para el gusto del día (¡pensando en ti, IE6!). La forma CORRECTA es seguir los estándares.
cjcela
4
No existe un estándar para los "correos electrónicos html". Estás apuntando al estándar para html.
RDS
2
Estoy de acuerdo con esta respuesta, mientras que muchos clientes renderizan html inválido de todos modos, el formato más confiable que se representará en la mayoría de los clientes es tener HTML válido.
markmnl
3
Esta es la respuesta correcta. El tipo de mímica de la parte o el cuerpo será texto / html. Independientemente del contexto, este tipo debe ajustarse a los estándares, ya sea un navegador web o un cliente de correo electrónico. @cjcela tiene la idea correcta, si todos nos limitáramos a admitir IE8, la web no evolucionaría. Si no nos atenemos a los estándares, ¿cómo evolucionará el HTML renderizado en el correo? Lo que debe hacer es ceñirse a los estándares, pero reconocer que cosas como las hojas de estilo en heads pueden ignorarse y tener una elegante alternativa.
Brett Ryan
33

Si incluye o no las etiquetas html / head / body es completamente irrelevante: siempre son opcionales y no afectarán la representación del documento de ninguna manera.

Lo que más importa es si el modo peculiaridades está activado o no. Desafortunadamente, no puede controlar eso en una configuración de correo web. Las tablas y los estilos en línea son tus amigos. Su mejor opción es probar en tantos clientes de escritorio y correo web como pueda.

Josh Lee
fuente
4
"siempre son opcionales y no afectarán la representación del documento", eso simplemente no es cierto, muchas representaciones son menos tolerantes a fallas y pueden elegir con razón no representar el html no válido.
markmnl
¿Qué sucede cuando el cliente de correo tiene un enlace "Ver este correo electrónico en el navegador"? Dependerá del navegador predeterminado representar el HTML no válido.
Sergey
13

Muchas de las publicaciones de este hilo son bastante antiguas y, como resultado, ya no son precisas.

En estos días, los correos electrónicos HTML deben incluir un tipo de documento, html y una declaración de cuerpo si tiene la intención de hacer algo elegante.

Hay una multitud de guías sobre este tema que pueden ayudarlo a aprender a codificar correctamente el correo electrónico HTML, pero la mayoría de ellas ignoran los detalles de un tipo de documento, que es como me topé con su pregunta.

Le sugiero que lea las siguientes 2 publicaciones que son de equipos acreditados familiarizados con los diversos problemas:

toma del monitor de campaña

correo electrónico sobre la toma de ácido

Kamelkev
fuente
Es curioso ... ¡dices que las publicaciones aquí son antiguas y pones un enlace en tu respuesta a una publicación de blog que tiene 7 años!
Alexis Wilke
2
Lo hice, pero las publicaciones de blog que se seleccionaron fueron cuidadosamente elegidas debido a su naturaleza autoritaria, y eran bastante progresistas en ese momento. Las opiniones que expresaron eran bastante poco comunes en ese entonces, especialmente cuando contrasta con las afirmaciones fechadas que comparten las otras respuestas aquí.
kamelkev
@AlexisWilke y uno de los enlaces incluso se mencionó aquí 3 años antes. Pero al menos está en una respuesta ahora, así que puedo intentar
subirlo
11

Depende totalmente del cliente de correo electrónico que lo reciba. En mi experiencia, a la mayoría de los clientes de correo electrónico que interpretan HTML no les importa si tiene etiquetas de cuerpo completo / cabeza / html, etc. De hecho, ni siquiera necesita esas etiquetas para la mayoría de los navegadores. Necesita tener las etiquetas de encabezado para incluir estilo / título, etc. De lo contrario, no son realmente necesarias, per se. Nunca los he visto necesarios.

Pastillas de explosión
fuente
3
Las etiquetas html / head / body son siempre opcionales.
Josh Lee
10

Hay una cosa que sé que es cierta: el uso de etiquetas HTML de apertura y cierre ayudará en la puntuación general de spam debido al hecho de que muchos de estos filtros basados ​​en dispositivos y firewalls de software agregarán un punto más o menos a un correo electrónico que usa html pero no usa las etiquetas de apertura y cierre.

Greg
fuente
11
¿Tiene alguna evidencia para apoyar esta afirmación?
alex
10
Observé este mismo comportamiento en los últimos días simplemente "viendo el original" en Gmail. Allí pude ver una puntuación de spam para un correo electrónico sin etiquetas de cierre de apertura: por ejemplo, X-Spam-Level: * | Informe de X-Spam: puntuación = 1.6 pruebas = HTML_MESSAGE, HTML_MIME_NO_HTML_TAG, MIME_HTML_ONLY | X-Spam-Score: 1 - por ejemplo, consulte wiki.apache.org/spamassassin/Rules/HTML_MIME_NO_HTML_TAG
Richard Hollis
1
También he visto esto, y algunas empresas tienen su umbral de cuarentena de spam tan bajo que perder las etiquetas HTML puede ser suficiente para evitar que su correo electrónico llegue. Esta página no incluye la configuración exacta disponible, pero he visto que el software deja un mensaje sobre la regla "HTML_MIME_NO_HTML_TAG", con la descripción "Mensaje solo HTML, pero no hay etiqueta HTML". techlib.barracuda.com/BSF/SpamScoring
JHS
3

No creo que haya una forma correcta, pero intentar que el correo electrónico sea visible en tantos lectores de correo electrónico como sea posible.

Por lo general, reviso los correos electrónicos en Thunderbird, porque Outlook perdona más.

En Thunderbird, este es el código HTML para un correo electrónico (tengo una extensión que muestra el html)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
        This is the body text<br>
<div class="moz-signature"><i><br>
<br>
Regards<br>
Alex<br>
</i></div>
</body>
</html>

Por cierto, uso el correo electrónico de texto sin formato para todos mis formularios web cada vez que puedo. Tuve muchos problemas con el correo electrónico de Blackberry al usar correos electrónicos de texto sin formato html +.

Alex Angelico
fuente