1. Introduzione
1.1. Ambito
Questo documento specifica il formato dei messaggi Internet (Internet Message Format, IMF), una sintassi per messaggi testuali che vengono inviati tra utenti di computer, nell'ambito dei messaggi di "posta elettronica". Questa specifica è un aggiornamento di [RFC2822], che a sua volta ha sostituito [RFC0822], aggiornandola per riflettere la prassi corrente e incorporando modifiche incrementali specificate in altre RFC come [RFC1123].
Questo documento specifica una sintassi solo per messaggi testuali. In particolare, non prevede alcunché per la trasmissione di immagini, audio o altri tipi di dati strutturati nei messaggi di posta elettronica. Sono state pubblicate diverse estensioni, come la serie di documenti MIME ([RFC2045], [RFC2046], [RFC2049]), che descrivono meccanismi per la trasmissione di tali dati attraverso la posta elettronica, sia estendendo la sintassi qui fornita sia strutturando tali messaggi in modo che siano conformi a questa sintassi. Tali meccanismi sono al di fuori dell'ambito di questa specifica.
Nel contesto della posta elettronica, i messaggi sono considerati come dotati di una busta (envelope) e di un contenuto (contents). La busta contiene qualunque informazione sia necessaria per realizzare la trasmissione e la consegna. (Si veda [RFC5321] per una discussione sulla busta.) Il contenuto comprende l'oggetto da consegnare al destinatario. Questa specifica si applica solo al formato e ad alcuni aspetti della semantica del contenuto dei messaggi. Non contiene alcuna specifica delle informazioni nella busta.
Tuttavia, alcuni sistemi di messaggistica possono utilizzare informazioni provenienti dal contenuto per creare la busta. L'intento è che questa specifica faciliti l'acquisizione di tali informazioni da parte dei programmi.
Questa specifica è intesa come definizione del formato del contenuto dei messaggi che deve essere scambiato tra sistemi. Sebbene alcuni sistemi di messaggistica memorizzino localmente i messaggi in questo formato (il che elimina la necessità di una traduzione tra formati) e altri utilizzino formati diversi da quello specificato in questa specifica, la memorizzazione locale è al di fuori dell'ambito di questa specifica.
Nota: Questa specifica non intende dettare i formati interni utilizzati dai siti, le caratteristiche specifiche dei sistemi di messaggistica che ci si aspetta che essi supportino, né alcuna delle caratteristiche dei programmi di interfaccia utente che creano o leggono messaggi. Inoltre, questo documento non specifica una codifica dei caratteri per il trasporto o la memorizzazione; vale a dire, non specifica il numero di bit utilizzati né come tali bit siano specificamente trasferiti sulla rete o memorizzati su disco.
1.2. Convenzioni di notazione
1.2.1. Notazione dei requisiti
Questo documento utilizza occasionalmente termini che appaiono in lettere maiuscole. Quando i termini "MUST", "SHOULD", "RECOMMENDED", "MUST NOT", "SHOULD NOT" e "MAY" appaiono in maiuscolo, essi sono usati per indicare requisiti particolari di questa specifica. Una discussione sui significati di questi termini appare in [RFC2119].
1.2.2. Notazione sintattica
Questa specifica utilizza la notazione Augmented Backus-Naur Form (ABNF) [RFC5234] per le definizioni formali della sintassi dei messaggi. I caratteri saranno specificati o mediante un valore decimale (ad esempio, il valore %d65 per la A maiuscola e %d97 per la a minuscola) o mediante un valore letterale senza distinzione tra maiuscole e minuscole racchiuso tra virgolette (ad esempio, "A" per la A maiuscola o minuscola).
1.2.3. Struttura di questo documento
Questo documento è diviso in diverse sezioni.
Questa sezione, la sezione 1, è una breve introduzione al documento.
La sezione 2 presenta la descrizione generale di un messaggio e delle sue parti costituenti. Si tratta di una panoramica per aiutare il lettore a comprendere alcuni dei principi generali utilizzati nelle parti successive di questo documento. Qualunque esempio in questa sezione MUST NOT essere considerato come specifica della sintassi formale di alcuna parte di un messaggio.
La sezione 3 specifica le regole ABNF formali per la struttura di ciascuna parte di un messaggio (la sintassi) e descrive la relazione tra tali parti e il loro significato nel contesto di un messaggio (la semantica). Vale a dire, espone le regole effettive per la struttura di ciascuna parte di un messaggio (la sintassi), nonché una descrizione delle parti e le istruzioni per la loro interpretazione (la semantica). Ciò include l'analisi della sintassi e della semantica delle sotto-parti dei messaggi che hanno una struttura specifica. La sintassi inclusa nella sezione 3 rappresenta i messaggi così come MUST essere creati. Nella sezione 3 vi sono anche note per indicare se qualcuna delle opzioni specificate nella sintassi SHOULD essere utilizzata al posto di altre.
Sia la sezione 2 sia la sezione 3 descrivono messaggi che è lecito generare ai fini di questa specifica.
La sezione 4 di questo documento specifica una sintassi "obsoleta". Nella sezione 3 vi sono riferimenti a questi elementi sintattici obsoleti. Le regole della sintassi obsoleta sono elementi che sono apparsi in versioni precedenti di questa specifica o che sono stati in precedenza ampiamente utilizzati nei messaggi Internet. In quanto tali, questi elementi MUST essere interpretati dai parser dei messaggi per essere conformi a questa specifica. Tuttavia, poiché è stato stabilito che gli elementi di questa sintassi sono non interoperabili o causano problemi significativi ai destinatari dei messaggi, essi MUST NOT essere generati dai creatori di messaggi conformi.
La sezione 5 descrive le considerazioni sulla sicurezza da tenere in conto nell'implementazione di questa specifica.
L'Appendice A elenca esempi di diversi tipi di messaggi. Questi esempi non sono esaustivi dei tipi di messaggi che appaiono su Internet, ma offrono una panoramica ampia di alcune forme sintattiche.
L'Appendice B elenca le differenze tra questa specifica e le specifiche precedenti per i messaggi Internet.
L'Appendice C contiene i ringraziamenti.