Decodificatore MIME

Incolla il sorgente completo di un'email - intestazioni e corpo - e vedila scomposta: ogni intestazione, la struttura MIME, la codifica di trasferimento e il charset di ciascuna parte, il corpo text/HTML decodificato e gli eventuali allegati. Tutto funziona nel tuo browser; niente viene caricato.

Risultato:
Incolla un'email grezza qui sopra e premi «Decodifica messaggio». Suggerimento: nella maggior parte dei client di posta usa «Mostra originale» / «Visualizza sorgente», oppure salva il messaggio come file .eml, per ottenere il testo grezzo.

Cos'è un decodificatore MIME e cosa significano tutte queste intestazioni?

Ogni email che ricevi è, in fondo, un documento di testo semplice che segue una struttura rigorosa definita da MIME (Multipurpose Internet Mail Extensions) e dal più vecchio formato di messaggio RFC 5322. Quando apri il “sorgente grezzo” o un file .eml salvato, quella struttura diventa visibile: un blocco di intestazioni, una riga vuota e poi il corpo. Questo decodificatore scompone qualsiasi messaggio incolli in quei pezzi — intestazioni, l’albero MIME, la codifica di trasferimento e il charset di ogni parte, il text/HTML decodificato e ciascun allegato — interamente nel tuo browser. Niente viene caricato su alcun server; l’analisi avviene sul tuo computer.

1. La forma generale di un messaggio

Un messaggio ha due sezioni separate dalla prima riga vuota:

Header-Name: valore dell'intestazione Another-Header: un altro valore (una riga di continuazione ripiegata) <riga vuota> Il corpo inizia qui…
  • Le intestazioni descrivono il messaggio: chi lo ha inviato, quando, l’oggetto e — aspetto cruciale per MIME — come il corpo è codificato e strutturato.
  • La riga vuota è il confine tra intestazioni e corpo. La primissima riga vuota chiude il blocco delle intestazioni.
  • Il corpo è tutto ciò che segue. In un messaggio moderno il corpo di solito non è testo semplice, bensì una struttura MIME con diverse parti.

2. Come sono scritte le intestazioni

Due regole confondono chi legge il sorgente grezzo:

  • Ripiegamento (folding). Un’intestazione lunga può essere suddivisa su più righe; ogni riga di continuazione inizia con uno spazio o una tabulazione. Alla lettura, quelle righe vengono riunite in un unico valore (“srotolate”).
  • Encoded-words (RFC 2047). Le intestazioni ufficialmente ammettono solo ASCII, quindi il testo non inglese e le emoji vengono racchiusi come =?charset?B?…?= (Base64) o =?charset?Q?…?= (una variante quoted-printable). Per esempio =?UTF-8?Q?caf=C3=A9?= si decodifica in café. Il decodificatore qui sopra mostra il valore leggibile; il valore grezzo è ciò che viaggia realmente sulla rete.

3. I campi delle intestazioni spiegati

Queste sono le variabili che vedrai in cima a quasi ogni messaggio. Non tutte sono sempre presenti.

Indirizzamento e identità

IntestazioneCosa significa
FromL’autore mostrato al lettore — un nome visualizzato e un indirizzo, es. Anna <anna@example.com>. È ciò che il tuo client di posta visualizza; non è la prova di chi ha realmente inviato l’email (vedi SPF/DKIM più sotto).
To, CcDestinatari principali e in copia. Intestazioni puramente informative — la consegna reale è determinata dalla busta SMTP, non da queste.
BccCopia carbone nascosta. Normalmente rimossa prima della consegna, quindi la vedi raramente nella posta ricevuta.
Reply-ToDove devono andare le risposte se ciò differisce da From (es. un mittente “no-reply” che indirizza le risposte all’assistenza).
Return-PathIl mittente della busta (l’indirizzo “MAIL FROM”) dove vengono inviati i messaggi di mancato recapito. Aggiunto dal server ricevente e spesso diverso da From.
SenderL’agente effettivo che ha inviato il messaggio quando non è l’autore (mailing list, “per conto di”).
Message-IDUn identificatore univoco a livello globale per questo messaggio, come <a1b2c3@example.com>. Usato per la creazione di conversazioni e la deduplicazione.

Conversazioni, date e oggetto

IntestazioneCosa significa
SubjectLa riga dell’oggetto. Spesso un encoded-word quando contiene caratteri non-ASCII.
DateQuando l’autore ha inviato il messaggio, con lo scostamento di fuso orario, es. Wed, 9 Jul 2026 10:15:00 +0000.
In-Reply-ToIl Message-ID a cui questo messaggio risponde — consente ai client di costruire i thread di conversazione.
ReferencesLa catena dei Message-ID precedenti nel thread.

Instradamento e autenticazione

IntestazioneCosa significa
ReceivedUna riga di traccia aggiunta da ogni server di posta attraversato dal messaggio, la più recente in cima. Leggendole dal basso verso l’alto si vede il percorso di consegna e i timestamp.
DKIM-SignatureUna firma crittografica che consente al destinatario di confermare che il messaggio è stato realmente inviato dal dominio e non è stato alterato durante il transito.
Authentication-ResultsIl verdetto del server ricevente sui controlli SPF, DKIM e DMARC (pass/fail). Un modo rapido per giudicare se un “From” è affidabile.
Received-SPFSe l’IP mittente è autorizzato a inviare per il dominio della busta.
List-UnsubscribePer posta di massa/newsletter: l’indirizzo o l’URL che un client usa per la disiscrizione con un clic.

4. Le variabili MIME — come è costruito il corpo

Queste poche intestazioni controllano l’intera struttura del corpo. Sono le variabili a cui questo decodificatore tiene di più.

VariabileCosa fa
MIME-Version: 1.0Dichiara che il messaggio usa MIME. Praticamente sempre 1.0.
Content-TypeLa variabile in assoluto più importante: il tipo di media di una parte (text/plain, text/html, image/png, application/pdf, multipart/*…). Porta con sé parametri dopo i punti e virgola.
charsetUn parametro di un Content-Type testuale: la codifica dei caratteri del testo, es. charset="UTF-8". Necessario per riconvertire i byte nelle lettere giuste.
boundaryUn parametro di un tipo multipart: una stringa marcatore univoca. Ogni parte inizia con --boundary e l’ultima termina con --boundary--.
Content-Transfer-EncodingCome i byte della parte sono stati impacchettati per sopravvivere come testo a 7 bit sulla rete (vedi la tabella qui sotto).
Content-Dispositioninline (mostrarlo nel messaggio) o attachment (proporlo come file). Di solito porta un parametro filename.
name / filenameIl nome file suggerito di un allegato, rispettivamente in Content-Type e Content-Disposition.
Content-IDUn identificatore per una parte inline (es. un’immagine) così che il corpo HTML possa farvi riferimento con cid:.

I tipi multipart comuni

  • multipart/alternative — lo stesso messaggio in due forme: un fallback text/plain e una versione text/html. Il client mostra la più ricca che riesce a gestire.
  • multipart/mixed — un corpo più gli allegati raggruppati insieme.
  • multipart/related — una parte HTML insieme alle immagini inline a cui fa riferimento tramite Content-ID.

Questi si annidano: un messaggio reale è spesso un multipart/mixed che contiene un multipart/alternative (testo + HTML) accanto a un allegato PDF. Il decodificatore lo mostra come un albero numerato (1, 1.1, 1.2…).

5. I valori di Content-Transfer-Encoding

ValoreSignificato
7bitASCII semplice, nulla di modificato. Il valore predefinito quando non è indicata alcuna codifica.
8bitI byte grezzi superiori a 127 vengono usati direttamente (richiede un percorso 8-bit-clean).
binaryByte arbitrari, senza limiti di lunghezza delle righe — raro nella posta normale.
quoted-printableTesto per lo più leggibile in cui i byte non-ASCII diventano esadecimali =XX (e un = a fine riga è un’interruzione morbida). Adatto a testo prevalentemente inglese con qualche accento.
base64Qualsiasi byte ricodificato in un alfabeto sicuro di 64 caratteri, ~33% più grande. Usato per immagini, PDF e altri allegati binari.

Il decodificatore inverte quella tra queste codifiche che è stata usata, poi applica il charset della parte così che il testo torni leggibile e gli allegati tornino come i loro byte originali (che puoi scaricare).

6. Un esempio pratico

Premi “Carica un esempio” qui sopra per caricare un piccolo messaggio e vederlo decodificato. Il suo scheletro ha questo aspetto:

Subject: =?UTF-8?Q?Meeting_notes_=E2=80=93_caf=C3=A9?= ← encoded-word MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="OUTER" --OUTER Content-Type: multipart/alternative; boundary="INNER" --INNER Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ← parte di testo ... --INNER Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 ← alternativa HTML ... --INNER-- --OUTER Content-Type: text/plain; name="notes.txt" Content-Disposition: attachment; filename="notes.txt" Content-Transfer-Encoding: base64 ← allegato ... --OUTER--

Come leggerlo: il tipo esterno è multipart/mixed, quindi il corpo è “contenuto + allegato”. Il suo primo figlio è un multipart/alternative che contiene la versione in testo semplice e quella HTML della stessa nota; il suo secondo figlio è l’allegato notes.txt. Il Subject è un encoded-word che si decodifica in “Meeting notes – café”.

7. Privacy

Tutto rimane sul tuo dispositivo. Questo strumento analizza il messaggio con JavaScript nel tuo browser — l’email grezza non viene mai inviata a noi o a chiunque altro, e niente viene memorizzato. Puoi esaminare in sicurezza messaggi privati o riservati.

Una volta che sai da quale server proviene un messaggio, puoi approfondire: consulta il MX Lookup del dominio, leggi come risponde un server nella guida Controllo SMTP con telnet, oppure verifica se un indirizzo può ricevere posta con l’Email Checker.