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?

alex
fonte
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.
mschonaker
fonte
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.

Josh Lee
fonte
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

Kamelkev
fonte
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.

Pílulas de explosão
fonte
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.

Greg
fonte
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.

Alex Angelico
fonte