File EML: che cos'è e come è fatto

Un'email intera dentro un file di testo: le intestazioni, il corpo, gli allegati e il motivo per cui aprendolo col blocco note vedi caratteri strani

Che cos'è un file EML

Un file .eml è un messaggio email completo salvato in un singolo file di testo, secondo lo standard RFC 5322. Contiene tutto il messaggio: chi l'ha scritto, a chi, quando, il testo, il codice HTML della versione formattata e gli allegati, tradotti in caratteri di testo. Non è un archivio compresso e non appartiene a nessuna azienda.

RFC 5322 è del 2008 e ha sostituito RFC 2822 (2001), a sua volta successore di RFC 822 (1982): è lo stesso formato di allora, aggiornato. La parte che riguarda allegati, testo formattato e caratteri non inglesi è definita separatamente dalle specifiche MIME, cioè RFC 2045, 2046, 2047, 2048 e 2049.

La conseguenza pratica più importante è questa: un .eml si apre con un editor di testo e si legge. Rinominalo in .txt e aprilo col blocco note o con TextEdit: vedrai il messaggio, per quanto circondato da righe tecniche. È esattamente ciò che il formato .msg di Outlook non permette, perché è un contenitore binario. La differenza è approfondita in EML o MSG.

In una riga

Un .eml è la trascrizione fedele di ciò che i server di posta si sono scambiati per consegnarti quel messaggio. Per questo è il formato scelto per archiviare le email che devono restare verificabili, comprese le ricevute della posta elettronica certificata.

L'anatomia: intestazioni, riga vuota, corpo

Un file .eml ha tre parti in sequenza: un blocco di intestazioni, una riga vuota, e il corpo del messaggio. La riga vuota non è formattazione: è il separatore previsto dallo standard, il punto esatto in cui i metadati finiscono e inizia il contenuto.

Ogni intestazione occupa una riga nella forma Nome: valore. Le righe si accumulano in cima al file mentre il messaggio viaggia: il client del mittente ne scrive alcune, ogni server che lo inoltra ne aggiunge altre. Un messaggio passato per quattro server ha quattro tracce di passaggio, e un .eml reale arriva facilmente a cinquanta righe di intestazioni prima che cominci il testo.

  • Intestazioni — mittente, destinatari, oggetto, data, percorso fra i server, esiti dei controlli antifalsificazione, descrizione del contenuto.
  • Riga vuota — il confine. Tutto ciò che viene dopo è contenuto.
  • Corpo — il testo, l'eventuale versione HTML e gli allegati, separati da marcatori di confine se il messaggio è multipart.

Le intestazioni, una per una

Le intestazioni si dividono in due gruppi: quelle che il tuo programma di posta ti mostra e quelle che tiene nascoste. Le seconde sono le più utili quando devi capire da dove arriva davvero un messaggio.

  • From — il mittente dichiarato. Si può falsificare: è il valore che il client scrive, non una verifica.
  • To, Cc — destinatari visibili. I destinatari in copia nascosta non compaiono nella copia ricevuta dagli altri.
  • Subject — l'oggetto. Se contiene accenti è codificato (vedi sotto).
  • Date — data e ora di composizione secondo l'orologio del mittente, con il fuso orario.
  • Message-ID — l'identificativo univoco del messaggio, assegnato alla partenza. È il riferimento da citare quando si chiede a un provider di tracciare una consegna.
  • Received — una riga per ogni server attraversato, in ordine inverso: l'ultimo server che ha toccato il messaggio scrive la prima riga in alto. Per ricostruire il percorso reale si legge dal basso verso l'alto.
  • Return-Path — l'indirizzo a cui tornano gli errori di consegna. Può essere diverso dal From, e quando lo è vale la pena chiedersi perché.
  • Content-Type — che tipo di contenuto c'è nel corpo: text/plain, text/html, o multipart/… con il marcatore di confine tra le parti.
  • MIME-Version: 1.0 — dichiara che il messaggio segue le specifiche MIME. È sempre 1.0, non è mai cambiata.
  • DKIM-Signature — la firma crittografica apposta dal dominio mittente su alcune intestazioni e sul corpo, verificabile con la chiave pubblica pubblicata nel DNS.
  • Authentication-Results — il verbale dei controlli fatti dal server che ha ricevuto il messaggio: qui si leggono gli esiti di SPF, DKIM e DMARC, ciascuno con il proprio pass o fail.

C'è poi una regola di scrittura che confonde chi apre il file per la prima volta: l'header folding (RFC 5322 §2.2.3). Un'intestazione troppo lunga si spezza su più righe, e le righe di continuazione iniziano con uno spazio o una tabulazione. È per questo che nell'editor un oggetto lungo o una riga Received sembrano "andare a capo" a caso: è una sola intestazione, scritta su più righe.

Perché nel blocco note vedi caratteri strani

Perché le intestazioni email nascono per contenere solo caratteri ASCII, quindi accenti, lettere accentate e alfabeti non latini vanno codificati. Il meccanismo si chiama encoded words ed è definito da RFC 2047.

La forma è =?charset?codifica?testo?=. Un oggetto come "Perché la fattura è sbagliata" diventa quindi qualcosa tipo =?UTF-8?B?UGVyY2jDqSBsYSBmYXR0dXJh?= con la B di Base64, oppure =?ISO-8859-1?Q?Perch=E9?= con la Q di quoted-printable. Non è un errore e non è un file danneggiato: è l'oggetto, scritto come lo standard impone.

La seconda codifica che incontri è quoted-printable, usata nel corpo dei messaggi con pochi caratteri non ASCII: le lettere accentate compaiono come =E9 o =C3=A8, e i segni = a fine riga sono soft line break, cioè spezzature inserite per rispettare il limite di lunghezza delle righe. Vanno rimossi in lettura, non sono caratteri del testo. Un lettore fa questo lavoro al posto tuo: EML Viewer decodifica encoded words e quoted-printable e ti mostra il messaggio come l'ha scritto il mittente.

Il corpo del messaggio e il MIME multipart

Nella maggior parte delle email il corpo è doppio: la stessa cosa scritta due volte, una in text/plain e una in text/html, racchiuse in un multipart/alternative. Il client mostra l'HTML e tiene il testo semplice come riserva, per i lettori che non visualizzano la grafica.

Le parti sono separate da un marcatore di confine, una stringa casuale dichiarata nel Content-Type come boundary= e ripetuta nel corpo preceduta da due trattini. Quando il messaggio ha anche allegati, la struttura si annida: un multipart/mixed che contiene il multipart/alternative del testo più una parte per ogni allegato.

Le immagini inline — il logo nella firma, la grafica di una newsletter incorporata nel file — sono parti come le altre, con un'intestazione Content-ID; l'HTML le richiama scrivendo src="cid:…" con lo stesso identificativo. Sono dentro il file, quindi si vedono anche senza connessione.

Diverso è il caso delle immagini remote: quelle non sono nel .eml, sono indirizzi http che il programma scarica nel momento in cui apri il messaggio. Quando sono invisibili — un punto trasparente da un pixel — il loro unico scopo è avvisare il mittente che hai aperto la mail, quando e da quale indirizzo IP. EML Viewer le blocca tutte, e lo puoi verificare: apri il pannello Rete degli strumenti sviluppatore mentre leggi un messaggio e non partirà nessuna richiesta verso domini esterni.

Gli allegati e il Base64

Gli allegati non stanno in un file a parte: sono dentro lo stesso .eml, convertiti in testo con la codifica Base64. Un PDF, una foto, un file ZIP diventano pagine e pagine di lettere e numeri, dichiarate da Content-Transfer-Encoding: base64 e da un Content-Disposition: attachment con il nome del file.

Base64 rappresenta 3 byte con 4 caratteri, quindi ogni allegato cresce di circa un terzo. È la ragione aritmetica per cui un .eml che contiene una foto da 3 MB pesa circa 4 MB: nessuna informazione aggiuntiva, solo la stessa informazione scritta in un alfabeto più povero. Chi apre il file con un editor di testo vede questa massa di caratteri e pensa che il file sia corrotto: è invece l'allegato, perfettamente intatto e solo da decodificare.

  • Base64 — per i file binari: PDF, immagini, archivi, documenti Office. Ingrandisce di circa il 33%.
  • quoted-printable — per il testo con qualche carattere non ASCII. Occupa poco più dell'originale.
  • 7bit / 8bit — testo senza codifica, scritto così com'è.

Un lettore corretto ricava dal file l'elenco degli allegati con nome e dimensione reale e li decodifica singolarmente, lasciandoti scegliere quali scaricare. Se invece ti serve tutto il messaggio in un unico documento da archiviare o firmare, puoi convertire l'EML in PDF.

Chi produce i file EML

Praticamente tutti i programmi di posta, perché .eml è il formato naturale in cui salvare un messaggio senza perdere nulla. Questi sono i casi più frequenti in cui te ne ritrovi uno sul computer.

  • Mozilla Thunderbird — trascinando un messaggio fuori dalla finestra, o con File → Salva come.
  • Apple Mail — salva i singoli messaggi come .eml; internamente, nelle proprie cartelle, usa la variante .emlx, che aggiunge la lunghezza del messaggio in prima riga e alcuni metadati in coda.
  • Windows Mail e la vecchia Posta di Windows — .eml è il loro formato di archiviazione predefinito.
  • Gmail — la voce "Scarica messaggio" nel menu di un'email produce un .eml; l'export completo da Google Takeout usa invece il .mbox.
  • Outlook.com e Outlook nelle versioni recenti — permettono di salvare in .eml accanto al proprio formato .msg.
  • Tutte le ricevute della posta elettronica certificata italiana — Aruba, Namirial, InfoCert, Poste, Register: le ricevute che scarichi sono file .eml, e sono il caso in cui il formato conta di più, perché quel file è la prova.

Casi particolari: PEC, mbox, winmail.dat, msg

Ci sono quattro situazioni in cui un file di posta non si comporta come ti aspetti. Tre sono varianti legittime del formato, una è un formato diverso travestito da allegato.

  • La busta PEC — una ricevuta di posta certificata è un .eml che contiene, come allegati, il messaggio originale in postacert.eml e i dati di certificazione in daticert.xml. I lettori comuni li mostrano come due file opachi da scaricare. Come leggerli davvero è spiegato in aprire postacert.eml.
  • Il file .mbox — non un messaggio ma un archivio: molti messaggi concatenati in un unico file di testo, ciascuno introdotto da una riga che inizia con From . È il formato dell'export di Google Takeout e delle cartelle di Thunderbird.
  • L'allegato winmail.dat — quando il mittente usa Outlook con il formato RTF Microsoft, i veri allegati finiscono impacchettati in un unico file winmail.dat. Come recuperarli è spiegato in winmail.dat: cos'è e come aprirlo.
  • Il file .msg — il formato proprietario di Outlook, binario e non leggibile in un editor. Stesse informazioni, contenitore completamente diverso: vedi EML o MSG.

Un file EML è pericoloso?

Un .eml non è un file eseguibile: non contiene codice che possa partire da solo quando lo apri, perché è testo e viene interpretato come tale. Il rischio non è nel contenitore, è in ciò che trasporta.

  • Gli allegati — vanno valutati uno per uno prima di aprirli. Un eseguibile, un archivio con dentro uno script, un documento Office con macro restano pericolosi esattamente come se li avessi scaricati da un sito.
  • I link nel corpo — un messaggio di phishing è un messaggio perfettamente valido dal punto di vista tecnico. Il testo visibile di un link può essere diverso dall'indirizzo reale, che nel file si legge in chiaro nell'attributo href.
  • Le immagini remote — non sono malware, ma segnalano al mittente che hai aperto il messaggio. Su una email che sospetti fraudolenta, quella conferma dice a chi l'ha inviata che il tuo indirizzo è attivo.

Leggere il messaggio in un lettore che non esegue nulla, non scarica risorse esterne e non carica il file su un server è quindi il modo più prudente di esaminare un'email di cui non ti fidi. È esattamente il motivo per cui EML Viewer lavora dentro il browser: il file non lascia il dispositivo, non serve installare niente — comodo sui computer aziendali senza permessi di amministratore — e i domini esterni non vengono mai contattati.

Dove gli altri strumenti si comportano diversamente

I convertitori online generici caricano il file sui propri server per elaborarlo. Se l'email contiene un contratto, una busta paga o una ricevuta PEC, quella copia esce dal tuo controllo e finisce sotto le condizioni di un terzo. Qui il file non si muove: la nostra informativa descrive passaggio per passaggio cosa accade.

Domande frequenti

Che cos'è esattamente un file EML?

È un messaggio email completo — intestazioni, testo e allegati — salvato in un singolo file di testo secondo lo standard RFC 5322. Non è un archivio compresso e non è un formato proprietario: chiunque rispetti quello standard può scriverlo e leggerlo.

Posso aprire un file EML con il blocco note?

Sì, ed è la prova che si tratta di testo. Vedrai però tutte le intestazioni tecniche, gli accenti codificati come =?UTF-8?B?...?= e gli allegati trasformati in pagine di caratteri Base64 illeggibili. Serve un lettore per ricomporre il messaggio in forma leggibile.

Perché un file EML pesa più degli allegati che contiene?

Perché gli allegati vengono codificati in Base64, che rappresenta 3 byte con 4 caratteri di testo: l'aumento è di circa un terzo. Una foto da 3 MB dentro un .eml occupa quindi circa 4 MB.

Un file EML può contenere un virus?

Il file .eml in sé non è eseguibile e non può avviare codice da solo. Il rischio sta in ciò che trasporta: gli allegati, che vanno valutati uno per uno prima di aprirli, e i link presenti nel corpo del messaggio.

Qual è la differenza tra EML e MSG?

L'EML è testo leggibile e segue uno standard pubblico (RFC 5322); il MSG di Outlook è un contenitore binario proprietario Microsoft. Un EML lo apri quasi con qualsiasi cosa, un MSG praticamente solo con Outlook o con un lettore che ne conosca il formato interno.

Che differenza c'è tra .eml, .emlx e .mbox?

Un .eml contiene un solo messaggio. Il .emlx è la variante di Apple Mail: lo stesso messaggio preceduto da una riga con la lunghezza e seguito da metadati in formato plist. Il .mbox è un archivio che concatena molti messaggi in un unico file, uno dopo l'altro.

Approfondimenti

Vedi com'è fatto il tuo file EML

Gratuito, senza registrazione e senza che il file lasci il tuo dispositivo.

Scarica l'app EML Viewer

Apri le email direttamente dal tuo smartphone, anche senza connessione. Disponibile per iOS e Android.

Apri le email da Mail, File e PEC
100% offline, zero tracking
Riconosce le ricevute PEC