web-dev-qa-db-fra.com

Lors de la création d'e-mails HTML, devrions-nous utiliser des balises html, head, body?

Dans mes vues de courrier électronique, je fais généralement juste quelque chose comme ...

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

Devrais-je le faire comme ça?

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

En d'autres termes, comme si je marquais un document autonome?

Je suppose que je peux sans risque supposer qu'un client de messagerie basé sur le Web la supprimera?

Quelle est la bonne façon?

106
alex

La bonne façon est de suivre le code HTML standard . Vous pouvez valider votre page HTML ici .

Votre client de messagerie devrait le suivre et devrait jeter ce qui n'est pas pris en charge ou ce qui n'est pas sécurisé comme javascript.

UPDATE: après plusieurs votes négatifs de personnes qui se fâchent lorsque vous leur dites de respecter les normes, je vais exposer quelques raisons pour lesquelles les règles suivantes pourraient être bénéfiques ici:

  1. un webmail souhaitant afficher votre courrier sous forme de page entière pourrait conserver votre format.
  2. un webmail enlèvera simplement les tags et attributs qu'il ne veut pas. Mais vous ne pouvez jamais savoir lesquels.
  3. Il est plus facile de trouver des composants (côté serveur) conformes aux normes de format, et donc moins sujets aux erreurs. Les analyseurs qui ne respectent pas les normes peuvent éventuellement se rompre, ce qui rend votre courrier non visible.
38
mschonaker

Que vous incluiez ou non les balises html/head/body n'a aucune pertinence - elles sont toujours facultatives et n'affecteront en aucune manière le rendu du document.

Le plus important est de savoir si le mode quirks est activé ou non. Malheureusement, vous ne pouvez pas contrôler cela dans un paramètre de messagerie Web. Les tableaux et les styles en ligne sont vos amis. Votre meilleur choix est de tester autant de clients Webmail et de postes de travail que possible.

33
Josh Lee

Beaucoup de messages sur ce fil sont plutôt anciens et par conséquent ils ne sont plus précis.

De nos jours, les e-mails HTML doivent inclure un doctype, un html et une déclaration de corps si vous souhaitez faire quelque chose d'extraordinaire.

Il existe une multitude de guides sur ce sujet qui peuvent vous aider à apprendre à coder correctement le courrier électronique HTML, mais la plupart d'entre eux ne tiennent pas compte des spécificités d'un doctype, ce qui m'a permis de trébucher sur votre question.

Je vous suggère de lire les 2 articles suivants qui proviennent d’équipes réputées et familiarisées avec les divers problèmes:

prise de moniteur de campagne

email sur la prise d'acide

10
kamelkev

Dépend entièrement du client de messagerie qui le reçoit. D'après mon expérience, la plupart des clients de messagerie qui interpréteront le langage HTML ne se soucient pas de savoir si vous avez des balises full body/head/html, etc. En fait, vous n'avez même pas besoin de ces balises pour la plupart des navigateurs. Vous devez avoir les balises head pour inclure le style/titre, etc. Sinon, elles ne sont pas vraiment nécessaires en soi. Je ne les ai jamais vus nécessaires.

9
Explosion Pills

Une chose que je sais être vraie: l’utilisation de balises d’ouverture et de fermeture HTML facilitera la détection du spam en raison du fait que de nombreux filtres et pare-feu logiciels de cette appliance ajoutent un point ou plus à un courrier électronique qui utilise le langage HTML, mais ne l’utilise pas. les balises d'ouverture et de fermeture.

8
Greg

Je ne pense pas qu'il existe un moyen correct mais d'essayer de rendre le courrier visible dans autant de lecteurs de courrier électronique que possible.

Je vérifie généralement les emails dans Thunderbird, car Outlook pardonne davantage.

Dans Thunderbird, c’est le code HTML d’un email (j’ai une extension qui montre le code 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, j'utilise un email en texte brut pour tous mes formulaires Web chaque fois que je peux. J'ai eu de nombreux problèmes avec les courriels BlackBerry en utilisant HTML + courriels en texte brut.

3
Alex Angelico