Passa al contenuto principale

1. Introduzione (Introduction)

L'obiettivo del Simple Mail Transfer Protocol (SMTP, Protocollo Semplice di Trasferimento Posta) è trasferire la posta in modo affidabile ed efficiente.

SMTP è indipendente dal particolare sottosistema di trasporto e richiede solo un canale di flusso dati ordinato e affidabile. Sebbene questo documento si concentri specificamente sull'uso di SMTP su TCP, altri trasporti sono possibili. Le appendici di questo documento forniscono informazioni importanti su TCP e altri dettagli di implementazione.

1.1. Trasporto della posta elettronica (Transport of Electronic Mail)

La posta elettronica viene trasferita da un server all'altro fino a raggiungere il sistema di destinazione. Più precisamente, la posta viene trasferita da un agente di trasferimento messaggi (Message Transfer Agent, MTA) a un altro utilizzando SMTP. L'MTA di destinazione è responsabile della consegna della posta alla mailbox dell'utente o del suo inoltro a un altro sistema.

Gli utenti non interagiscono direttamente con SMTP. Invece:

  • Gli user agent (UA, agenti utente) o mail submission agent (MSA, agenti di sottomissione posta) sottomettono la posta agli MTA
  • Gli mail access agent (MAA, agenti di accesso posta) permettono agli utenti di recuperare la posta dalle mailbox utilizzando protocolli come POP3 o IMAP

1.2. Storia e contesto di questo documento (History and Context for This Document)

SMTP fu specificato per la prima volta in RFC 821 nell'agosto 1982. Da allora, è stato oggetto di numerosi aggiornamenti e chiarimenti:

  • RFC 821 (1982): Specifica SMTP originale
  • RFC 1123 (1989): Requisiti per gli host Internet - chiarì e aggiornò SMTP
  • RFC 1869 (1995): Introdusse il meccanismo di estensione del servizio SMTP (ESMTP)
  • RFC 2821 (2001): Consolidò e chiarì le specifiche precedenti
  • RFC 5321 (2008): Questo documento - specifica attuale

Questo documento rende obsoleto RFC 2821 e aggiorna RFC 1123. Incorpora l'esperienza e le migliori pratiche degli ultimi due decenni di deployment SMTP su Internet.

Modifiche chiave rispetto a RFC 2821

  1. Chiarimenti: Linguaggio più preciso sul comportamento dei comandi
  2. Migliori pratiche: Raccomandazioni aggiornate basate sull'esperienza operativa
  3. Considerazioni sulla sicurezza: Guida alla sicurezza ampliata
  4. Interoperabilità: Guida migliorata per gestire i sistemi legacy

1.3. Convenzioni del documento (Document Conventions)

Le parole chiave "MUST" (DEVE), "MUST NOT" (NON DEVE), "REQUIRED" (RICHIESTO), "SHALL" (DEVE), "SHALL NOT" (NON DEVE), "SHOULD" (DOVREBBE), "SHOULD NOT" (NON DOVREBBE), "RECOMMENDED" (RACCOMANDATO), "MAY" (PUÒ) e "OPTIONAL" (OPZIONALE) in questo documento devono essere interpretate come descritto in RFC 2119.

Significato delle parole chiave RFC 2119

  • MUST / REQUIRED / SHALL: Requisito assoluto della specifica
  • MUST NOT / SHALL NOT: Divieto assoluto
  • SHOULD / RECOMMENDED: Possono esistere motivi validi per ignorare, ma le implicazioni devono essere comprese
  • SHOULD NOT / NOT RECOMMENDED: Possono esistere motivi validi quando il comportamento è accettabile, ma le implicazioni devono essere comprese
  • MAY / OPTIONAL: L'elemento è veramente opzionale

Notazioni

In questo documento:

  • Gli esempi di protocollo usano "C:" per le righe del client e "S:" per le righe del server
  • La sintassi è specificata usando Augmented Backus-Naur Form (ABNF, Forma Aumentata di Backus-Naur) come definita in RFC 5234
  • I termini definiti in questo documento sono evidenziati al loro primo utilizzo

Esempio di sessione SMTP

S: 220 smtp.example.com ESMTP Postfix
C: EHLO client.example.com
S: 250-smtp.example.com
S: 250-SIZE 52428800
S: 250-8BITMIME
S: 250 STARTTLS
C: MAIL FROM:<[email protected]>
S: 250 Ok
C: RCPT TO:<[email protected]>
S: 250 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: [email protected]
C: To: [email protected]
C: Subject: Test
C:
C: This is a test message.
C: .
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye