Ao criar e-mails em HTML, devemos usar as tags html, head, body?


113

Em minhas visualizações de e-mail, geralmente faço algo como ...

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

Eu deveria estar fazendo assim?

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

Em outras palavras, como se eu estivesse marcando um documento autônomo?

Acho que posso assumir com segurança que qualquer cliente de e-mail baseado na web irá removê-lo?

Qual é o caminho certo?


Por que vale a pena, Thunderbird emite os html, heade bodyas tags em suas mensagens.
— palswim de

Respostas:


44

A maneira certa é seguir o padrão HTML . Você pode validar sua página HTML aqui .

Seu cliente de e-mail deve segui-lo e jogar fora o que não é compatível ou o que é inseguro, como javascript.

ATUALIZAÇÃO: após vários votos negativos de pessoas que ficam irritadas quando você diz a elas para seguirem os padrões, vou expor algumas razões pelas quais seguir os padrões pode ser benéfico aqui:

  1. um webmail disposto a mostrar seu e-mail como uma página inteira, pode manter seu formato.
  2. um webmail simplesmente removerá as tags e atributos que não deseja. Mas você nunca pode saber quais.
  3. É mais fácil encontrar componentes (do lado do servidor) que seguem os padrões de formato e, portanto, menos sujeitos a erros. Os analisadores que não seguem os padrões podem quebrar, fazendo com que seu e-mail não seja mostrado.

54
-1 O jeito certo é testá-lo nos clientes relevantes. Embora os clientes de e-mail devam seguir os padrões, virtualmente nenhum deles o faz.
— Dan Blows

27
mschonaker está correto. Se todos começarem a seguir os padrões, o uso será ... bem ... padronizado. Caso contrário, todos os desenvolvedores têm que implementar hacks para o sabor do dia (pensando em você, IE6!). A maneira CERTA é seguir os padrões.
— cjcela

4
Não existe um padrão para "emails html". Você está apontando para o padrão para html.
— rds

2
Eu concordo com essa resposta, embora muitos clientes renderizem html inválido, o formato mais confiável que renderizará na maioria dos clientes é ter html válido!
— markmnl de

3
Essa é a resposta correta. O tipo mime da parte ou corpo será text / html. Independentemente do contexto, este tipo deve ser seguido por padrões, seja um navegador da web ou um cliente de e-mail. @cjcela tem a ideia certa, se todos nós continuássemos apoiando o IE8, a web não evoluiria. Se não seguirmos os padrões, como o HTML renderizado no correio evoluirá? O que você deve fazer é seguir os padrões, mas reconhecer que coisas como folhas de estilo em heads podem ser ignoradas e ter um fallback elegante.
— Brett Ryan

33

A inclusão ou não das tags html / head / body é totalmente irrelevante - elas são sempre opcionais e não afetarão a renderização do documento de forma alguma.

O que mais importa é se o modo quirks está ativado ou não. Infelizmente, você não pode controlar isso em uma configuração de webmail. As tabelas e os estilos embutidos são seus amigos. Sua melhor aposta é testar em tantos clientes de webmail e desktop quanto possível.



4
"eles são sempre opcionais e não afetarão a renderização do documento" isso simplesmente não é verdade, muitos renderizadores são menos tolerantes a falhas e podem escolher acertadamente não renderizar o html inválido.
— markmnl

O que acontece quando o cliente de e-mail tem um link "Ver este e-mail no navegador"? Caberá ao navegador padrão processar o HTML inválido.
— Sergey de

13

Muitas das postagens neste tópico são bastante antigas e, como resultado, não são mais precisas.

Hoje em dia, os e-mails em HTML devem incluir doctype, html e declaração do corpo, se você pretende fazer algo sofisticado.

Há uma infinidade de guias sobre esse assunto que podem ajudá-lo a aprender como codificar corretamente um e-mail em HTML, mas a maioria deles desconsidera os detalhes de um doctype, e foi assim que descobri sua pergunta.

Eu sugiro que você leia os 2 posts a seguir, que são de equipes conceituadas familiarizadas com os vários problemas:

tomada do monitor de campanha

e-mail sobre a tomada do ácido


Engraçado ... você diz que as postagens aqui são antigas e coloca um link em sua resposta a uma postagem de 7 anos!
— Alexis Wilke

2
Eu fiz, mas as postagens de blog que foram selecionadas foram cuidadosamente escolhidas devido à sua natureza autoritária, e eram bastante avançadas na época. As opiniões que eles expressaram eram bastante incomuns naquela época, especialmente quando você contrasta com as afirmações datadas que são compartilhadas pelas outras respostas aqui.
— kamelkev

@AlexisWilke e um dos links foram até mencionados aqui 3 anos antes! Mas pelo menos está em uma resposta agora, então posso tentar aumentar a lista com um
— voto positivo

11

Depende inteiramente do cliente de e-mail que o recebe. Na minha experiência, a maioria dos clientes de e-mail que interpretam HTML não se importam se você tem tags de corpo inteiro / cabeça / html, etc. Na verdade, você nem mesmo precisa dessas tags para a maioria dos navegadores. Você precisa ter as tags head para incluir estilo / título, etc. Caso contrário, elas não são realmente necessárias, por si só. Nunca os vi necessários.


3
As tags html / head / body são sempre opcionais.
— Josh Lee,

10

Há uma coisa que eu sei que é verdade: usar tags de abertura e fechamento de HTML ajudará na pontuação geral de spam, devido ao fato de que muitos desses filtros baseados em appliance e firewalls de software adicionam um ponto ou mais a um e-mail que usa html, mas não usa as tags de abertura e fechamento.


11
Você tem alguma evidência para apoiar esta afirmação?
— alex

10
Observei esse mesmo comportamento nos últimos dias simplesmente "visualizando o original" no Gmail. Lá eu pude ver uma pontuação de spam para um e-mail sem tags de fechamento de abertura: por exemplo, X-Spam-Level: * | Relatório X-Spam: pontuação = 1.6 testes = HTML_MESSAGE, HTML_MIME_NO_HTML_TAG, MIME_HTML_ONLY | X-Spam-Score: 1 - por exemplo, consulte wiki.apache.org/spamassassin/Rules/HTML_MIME_NO_HTML_TAG
— Richard Hollis

1
Eu também vi isso, e algumas empresas têm seu limite de quarentena de spam tão baixo que perder as tags HTML pode ser suficiente para impedir que seu e-mail seja enviado. Esta página não lista as configurações exatas disponíveis, mas vi o software deixar uma mensagem sobre a regra "HTML_MIME_NO_HTML_TAG," com a descrição "mensagem somente HTML, mas não há tag HTML." techlib.barracuda.com/BSF/SpamScoring
— JHS de

3

Não acho que exista um jeito certo senão tentar tornar o e-mail visível em tantos leitores de e-mail quanto possível.

Costumo verificar os e-mails no Thunderbird, porque o Outlook perdoa mais.

No Thunderbird, este é o código HTML para um e-mail (tenho uma extensão que mostra o 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>

BTW, eu uso e-mail de texto simples para todos os meus formulários da web sempre que posso. Tive muitos problemas com o e-mail do blackberry usando html + e-mails de texto simples.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.