Quando creiamo email HTML, dovremmo usare tag html, head, body?


113

Nelle mie visualizzazioni di posta elettronica, di solito faccio solo qualcosa come ...

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

Dovrei farlo in questo modo?

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

In altre parole, come se stessi contrassegnando un documento autonomo?

Immagino di poter tranquillamente presumere che qualsiasi client di posta elettronica basato sul Web lo eliminerà?

Qual è il modo giusto?


Per quel che vale, Thunderbird emette i html, heade bodytag nei suoi messaggi.
palswim

Risposte:


43

Il modo giusto è seguire lo standard HTML . Puoi convalidare la tua pagina HTML qui .

Il tuo client di posta dovrebbe seguirlo e dovrebbe buttare via ciò che non è supportato o ciò che non è sicuro come javascript.

AGGIORNAMENTO: dopo diversi voti negativi da parte di persone che si arrabbiano quando dici loro di seguire gli standard, esporrò alcuni motivi per cui seguire gli standard potrebbe essere utile qui:

  1. una webmail disposta a mostrare la tua posta come una pagina intera, potrebbe mantenere il tuo formato.
  2. una webmail rimuoverà semplicemente i tag e gli attributi che non desidera. Ma non puoi mai sapere quali.
  3. È più facile trovare componenti (lato server) che seguono gli standard di formato e quindi meno soggetti a errori. I parser che non seguono gli standard potrebbero rompere, impedendo la visualizzazione della tua email.

54
-1 Il modo giusto è testarlo nei client pertinenti. Sebbene i client di posta dovrebbero seguire gli standard, praticamente nessuno di loro lo fa.
Dan Blows

27
mschonaker è corretto. Se tutti iniziano a seguire gli standard, l'uso sarà ... beh ... standardizzato. Altrimenti, tutti gli sviluppatori devono implementare hack per il gusto del giorno (pensando a te, IE6!). Il modo GIUSTO è seguire gli standard.
cjcela

4
Non esiste uno standard per le "email html". Stai indicando lo standard per html.
rds

2
Sono d'accordo con questa risposta, mentre molti client rendono comunque html non valido, il formato più affidabile che verrà visualizzato sulla maggior parte dei client è di avere un HTML valido!
markmnl

3
Questa è la risposta corretta. Il tipo MIME della parte o del corpo sarà text / html. Indipendentemente dal contesto, questo tipo dovrebbe essere rispettato dagli standard, che si tratti di un browser Web o di un client di posta elettronica. @cjcela ha l'idea giusta, se continuassimo a supportare IE8 il web non si evolverebbe. Se non ci atteniamo agli standard, come evolverà l'HTML reso nella posta? Quello che dovresti fare è attenersi agli standard, ma riconoscere che cose come i fogli di stile in heads possono essere ignorate e avere un grazioso fallback.
Brett Ryan

33

Che tu includa o meno i tag html / head / body è del tutto irrilevante: sono sempre opzionali e non influenzeranno in alcun modo il rendering del documento.

Ciò che conta di più è se la modalità quirks è attiva o meno. Sfortunatamente, non puoi controllarlo in un'impostazione di webmail. Le tabelle e gli stili in linea sono tuoi amici. La soluzione migliore è testare il maggior numero possibile di webmail e client desktop.



4
"sono sempre opzionali e non influenzeranno il rendering del documento" questo semplicemente non è vero, molti render sono meno tolleranti ai guasti e possono giustamente scegliere di non rendere l'html non valido.
markmnl

Cosa succede quando il client di posta ha un collegamento "Visualizza questa email nel browser"? Spetterà al browser predefinito eseguire il rendering dell'HTML non valido.
Sergey

13

Molti dei post in questo thread sono piuttosto vecchi e di conseguenza non sono più accurati.

Oggigiorno le email HTML dovrebbero includere un doctype, html e una dichiarazione del corpo se intendi fare qualcosa di stravagante.

Ci sono una moltitudine di guide su questo argomento che possono aiutarti a imparare come codificare correttamente le email HTML, ma la maggior parte di esse ignora le specifiche di un doctype, ed è così che sono incappato nella tua domanda.

Ti suggerisco di leggere i seguenti 2 post che provengono da team affidabili che hanno familiarità con i vari problemi:

l'opinione del monitor della campagna

email sulla presa di acido


Divertente ... dici che i post qui sono vecchi e metti un link nella tua risposta a un post sul blog che ha 7 anni!
Alexis Wilke,

2
L'ho fatto, ma i post del blog selezionati sono stati scelti con cura per la loro natura autorevole e all'epoca erano piuttosto lungimiranti. Le opinioni che esprimevano erano abbastanza rare all'epoca, specialmente quando si contrappongono le affermazioni datate condivise dalle altre risposte qui.
kamelkev

@AlexisWilke e uno dei link è stato anche menzionato qui 3 anni prima! Ma almeno ora è in una risposta, quindi posso provare a metterlo in cima alla lista con un
voto positivo

11

Dipende interamente dal client di posta elettronica che lo riceve. Nella mia esperienza, alla maggior parte dei client di posta elettronica che interpreteranno l'HTML non interessa se hai tag full body / head / html, ecc. In effetti non hai nemmeno bisogno di quei tag per la maggior parte dei browser. Devi avere i tag head per includere stile / titolo, ecc. Altrimenti non sono realmente necessari, di per sé. Non li ho mai visti necessari.


3
I tag html / head / body sono sempre opzionali.
Josh Lee,

10

C'è una cosa che so essere vera: l'uso di tag di apertura e chiusura HTML aiuterà nel punteggio generale dello spam perché molti di questi filtri basati su appliance e firewall software aggiungeranno un punto o giù di lì a un'e-mail che utilizza html ma non usa i tag di apertura e chiusura.


11
Hai delle prove a sostegno di questa affermazione?
alex

10
Ho osservato questo stesso comportamento negli ultimi giorni semplicemente "visualizzando l'originale" in Gmail. Lì ho potuto vedere un punteggio di spam per un'e-mail senza tag di chiusura di apertura: ad esempio X-Spam-Level: * | Rapporto X-Spam: punteggio = 1,6 test = HTML_MESSAGE, HTML_MIME_NO_HTML_TAG, MIME_HTML_ONLY | Punteggio X-Spam: 1 - ad es. Vedi wiki.apache.org/spamassassin/Rules/HTML_MIME_NO_HTML_TAG
Richard Hollis

1
Ho visto anche questo e alcune aziende hanno la soglia per la quarantena dello spam così bassa che la mancanza dei tag HTML può essere sufficiente per impedire il passaggio della posta elettronica. Questa pagina non elenca le impostazioni esatte disponibili, ma ho visto il software lasciare un messaggio sulla regola "HTML_MIME_NO_HTML_TAG" con la descrizione "messaggio solo HTML, ma non è presente alcun tag HTML". techlib.barracuda.com/BSF/SpamScoring
JHS

3

Non credo che ci sia un modo giusto, ma cercare di rendere l'email visualizzabile in quanti più lettori di email è possibile.

Di solito controllo le e-mail in Thunderbird, perché Outlook perdona di più.

In Thunderbird questo è il codice HTML per un'e-mail (ho un'estensione che mostra l'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>

A proposito, utilizzo la posta elettronica in testo normale per tutti i miei moduli web ogni volta che posso. Ho avuto molti problemi con la posta elettronica Blackberry utilizzando html + messaggi di posta elettronica di testo normale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.