Posta elettronica - SMTP POP3 IMAP MIME | 5° Anno - Sistemi e Reti
Anno 5 · Modulo 1 · Lezione 8
a cura di Prof. Giagnotti · Sistemi e Reti - Classe 5ª

Posta elettronica - SMTP POP3 IMAP MIME

Dal MUA all'MTA: come viaggia davvero un'email, perché servono tre protocolli diversi e cosa permette a un allegato PDF di arrivare intatto. Con porte, comandi reali e differenze tra POP3 e IMAP che escono all'orale.

📚 Anno 5 🧩 Modulo 1 ⏱ 60 min
📋 Obiettivi di apprendimento
✓Descrivere l'architettura del sistema di posta elettronica distinguendo MUA, MTA, MDA, SMTP, POP3 e IMAP
✓Spiegare le differenze tra le porte SMTP 25, 587 e 465, motivando l'uso di ciascuna
✓Confrontare POP3 e IMAP indicando vantaggi e limiti di ciascun protocollo in scenari multi-dispositivo
✓Spiegare il ruolo di MIME e riconoscere la struttura di un messaggio email con header e body multipart

1. Architettura: MUA, MTA, MDA e coda di posta

📌 Definizione da ricordare

La posta elettronica è un servizio asincrono store-and-forward: il messaggio viene accodato, trasferito tra MTA via SMTP e conservato nella casella fino al recupero da parte del MUA del destinatario via IMAP o POP3.

Due categorie di software, tre ruoli sul server:

  • MUA (Mail User Agent): il client che usi per scrivere e leggere. Es. Thunderbird, Outlook, app Gmail, Apple Mail. Parla SMTP per inviare e IMAP/POP3 per leggere.
  • MTA (Mail Transfer Agent): il postino tra server. Es. Postfix, Sendmail, Exchange, Gmail MTA. Riceve da MUA, risolve MX con DNS, inoltra ad altro MTA.
  • MDA (Mail Delivery Agent): consegna finale nella Mailbox del destinatario (es. Dovecot deliver, Procmail).
🎯 Esempio in classe

Mario da Thunderbird (MUA) invia mario@istituto.edu → oliver@gmail.com. Thunderbird contatta smtp.istituto.edu:587 autenticato. L'MTA istituto interroga DNS record MX di gmail.com → trova gmail-smtp-in.l.google.com, consegna via SMTP porta 25. Il server Gmail passa a MDA che scrive in /var/mail/oliver. Oliver apre Gmail (MUA webmail) o IMAP e vede il messaggio.

MUA Mittente Thunderbird SMTP :587 AUTH MTA mittente Postfix coda + MX DNS SMTP :25 MTA destinatario gmail MTA antispam, DKIM MDA Mailbox /var/mail IMAP :993 MUA destinatario Gmail app IMAP/POP3 Asincrono: Mittente e destinatario non devono essere online insieme. MTA ritenta con backoff, coda persiste giorni. Porte: MUA→MSA 587/465 autenticato • MTA→MTA 25 • MUA←Mailbox IMAP 143/993 o POP3 110/995
💬 Tip del docente

All'interrogazione: disegna MUA → MTA → MTA → MDA → Mailbox → MUA. Sottolinea che SMTP serve SOLO per l'invio. Se dici "scarico posta con SMTP" = errore grave.

2. SMTP e le tre porte: 25, 587, 465

📌 SMTP

Simple Mail Transfer Protocol - protocollo testuale client/server su TCP per trasferire email. Comandi: HELO/EHLO, MAIL FROM, RCPT TO, DATA, QUIT. Risposte 2xx OK, 4xx temporaneo, 5xx permanente.

SMTP nasceva senza autenticazione: oggi si distingue:

25 · SERVER-TO-SERVER

Porta 25

Relay MTA↔MTA. Plain o STARTTLS opportunistic. Bloccata spesso da ISP per client, per evitare spam.

587 · CLIENT-TO-SERVER

Porta 587 (MSA)

Mail Submission Agent: client autenticato invia. Richiede AUTH + STARTTLS. Consigliata RFC 6409.

465 · IMPLICIT TLS

Porta 465

SMTPS: TLS implicito dal primo byte (ex deprecata, poi riabilitata). Alternativa a 587 quando firewall blocca STARTTLS.

SMTP · Sessione reale
S: 220 smtp.istituto.edu ESMTP Postfix C: EHLO lab-pc05.istituto.local S: 250-smtp.istituto.edu S: 250-STARTTLS S: 250 AUTH PLAIN LOGIN C: STARTTLS S: 220 2.0.0 Ready to start TLS --- TLS handshake --- C: AUTH LOGIN S: 334 VXNlcm5hbWU6 C: bWFyaW8= (base64 user) S: 334 UGFzc3dvcmQ6 C: cGFzc3dvcmQ= (base64 pass) S: 235 2.7.0 Authentication successful C: MAIL FROM: S: 250 2.1.0 Ok C: RCPT TO: S: 250 2.1.5 Ok C: DATA S: 354 End data with . C: From: Mario C: To: oliver@gmail.com C: Subject: Test lezione SMTP C: Date: Tue, 13 May 2026 10:20:00 +0200 C: C: Corpo del messaggio, in ASCII o MIME... C: . S: 250 2.0.0 Ok: queued as A1B2C3D4 C: QUIT S: 221 2.0.0 Bye
⚠️ Errore comune

Confondere MAIL FROM (busta SMTP, usata per bounce e SPF) con header From: (quello che vede l'utente). Possono essere diversi: è alla base di spoofing e phishing. SPF controlla proprio MAIL FROM / Return-Path.

🎯 Esempio in classe - config Thunderbird

Configurazione che dovresti sapere replicare: SMTP Server = smtp.istituto.edu, porta 587, STARTTLS, auth Normal password, user mario@istituto.edu. IMAP = imap.istituto.edu porta 993 SSL/TLS. Se metti 25 senza auth fallisce, se metti 465 con STARTTLS fallisce (465 vuole SSL/TLS implicito).

3. Formato del messaggio e MIME

Un'email RFC 5322 è sempre header + riga vuota + body. SMTP originariamente solo 7-bit ASCII, quindi:

📌 MIME - Multipurpose Internet Mail Extensions

Estende email a: testo non ASCII (UTF-8), allegati binari, HTML, multipart. Aggiunge header: MIME-Version, Content-Type, Content-Transfer-Encoding, Content-Disposition.

EMAIL · Struttura MIME multipart
From: Prof. Giagnotti To: Classe 5A <5a@istituto.edu> Subject: Slide lezione 8 Date: Tue, 13 May 2026 10:22:15 +0200 Message-ID: <20260513102215.1234@istituto.edu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="BOUNDARY_123"--BOUNDARY_123 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printableCiao classe, in allegato le slide. Questa parte è testo semplice.--BOUNDARY_123 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printableCiao classe, in allegato le slide.--BOUNDARY_123 Content-Type: application/pdf; name="lezione8.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="lezione8.pdf"JVBERi0xLjQKJeLjz9M... (base64 del PDF)--BOUNDARY_123--
CONTENT-TYPE

Tipo

text/plain, text/html, image/jpeg, application/pdf, multipart/alternative, multipart/mixed

ENCODING

Trasporto

7bit, 8bit, quoted-printable (testo accentato), base64 (binario = +33% size)

DISPOSITION

Ruolo

inline = mostra nel corpo (es. immagine in HTML) vs attachment = scarica

💬 Tip del docente

All'Esame di Stato: se ti chiedono "perché MIME?" rispondi: SMTP è 7-bit line-oriented; senza MIME non puoi inviare PDF/JPG/HTML. Base64 mappa 3 byte binari in 4 ASCII, quindi allegato pesa di più. Ricorda boundary univoco.

4. POP3 vs IMAP: ricezione e sincronizzazione

SMTP invia, ma non legge. Per leggere servono due protocolli distinti, entrambi su TCP, oggi quasi sempre su TLS:

POP3 · Comandi essenziali porta 110 / 995
C: USER mario S: +OK C: PASS secret S: +OK mailbox locked and ready, 2 messages C: STAT S: +OK 2 3200 (2 messaggi, 3200 byte) C: LIST S: +OK S: 1 1500 S: 2 1700 S: . C: RETR 1 S: +OK 1500 octets -> (contenuto messaggio 1) C: DELE 1 (cancella dal server dopo scarico) S: +OK deleted C: QUIT S: +OK bye
IMAP · Comandi essenziali porta 143 / 993
C: A001 LOGIN mario secret S: A001 OK LOGIN completed C: A002 SELECT INBOX S: * 5 EXISTS (5 messaggi) S: A002 OK SELECT completed C: A003 FETCH 1:5 (FLAGS BODY[HEADER.FIELDS (FROM SUBJECT DATE)]) S: * 1 FETCH (FLAGS (\Seen) BODY[HEADER.FIELDS...] {72} S: From: prof@istituto.edu S: Subject: Compito S: ) S: A003 OK FETCH completed C: A004 STORE 1 +FLAGS (\Deleted) C: A005 EXPUNGE (elimina messaggi flagged) C: A006 LOGOUT
CaratteristicaPOP3 (110 / 995 TLS)IMAP (143 / 993 TLS)
ModelloDownload & delete (offline)Sincronizzazione server-centrica (online)
Messaggi sul serverDi default rimossi dopo download (opz. keep)Restano sul server, flags sincronizzati
Multi-dispositivo❌ No - ogni dispositivo ha copia diversa✅ Sì - stesso INBOX su phone/PC/webmail
CartelleSolo INBOXINBOX, Sent, Draft, custom, shared
Ricerca / partial fetchDeve scaricare tuttoSEARCH, FETCH solo header, BODY.PEEK evita scarico allegati
OfflineNativo, lavora senza retePossibile con cache, ma nasce online
ComplessitàSemplice, pochi comandiPiù complesso, stato, UID
🎯 Esempio in classe - scegli tu

Scenario A: PC fisso unico in ufficio, backup locale, linea lenta. POP3 con "lascia copia 7 giorni" può avere senso. Scenario B: studente con smartphone + tablet + PC + webmail Gmail = IMAP obbligatorio, altrimenti ogni device vede messaggi diversi e segnati letto/non letto non sincronizzati. Oggi 99% provider spingono IMAP.

⚠️ Errore verifica

Dire "IMAP è più sicuro di POP3". Falso: sicurezza dipende da TLS (995 vs 110, 993 vs 143) e auth, non dal protocollo. IMAP è più funzionale, non automaticamente più sicuro.

5. Flusso completo, DNS MX e sicurezza

Per consegnare, MTA deve trovare dove consegnare:

  1. Estrae dominio da RCPT TO: oliver@gmail.com → gmail.com
  2. Query DNS tipo MX (Mail eXchange) per gmail.com → lista priorità
  3. Se manca MX, fallback su record A / AAAA
  4. Tenta connessione TCP porta 25 al MX con priorità minore, con retry e backoff
  5. Verifica SPF sul MAIL FROM, valida DKIM signature, applica DMARC
DNS & SMTP · Debug da terminale lab
# Trova MX di un dominio nslookup -type=MX gmail.com dig MX gmail.com # Output: 5 gmail-smtp-in.l.google.com# Verifica SPF e DKIM dig TXT gmail.com | grep spf dig TXT _dmarc.gmail.com# Prova banner SMTP (dentro lab, non su rete scuola!) telnet gmail-smtp-in.l.google.com 25 # oppure con openssl per STARTTLS openssl s_client -starttls smtp -crlf -connect smtp.istituto.edu:587
SPF

Sender Policy

Record TXT: quali IP possono inviare per quel dominio. Controlla MAIL FROM. Evita spoofing.

DKIM

Firma

MTA firma header+body con chiave RSA. Destinatario verifica con chiave pubblica in DNS.

DMARC + TLS

Policy e cifratura

DMARC dice cosa fare se SPF/DKIM falliscono. STARTTLS cifra tra MTA, ma opportunistic; MTA-STS forza TLS.

1. DNS MX dig MX gmail.com → lista server + pref 2. SMTP 25 MAIL FROM / RCPT TO Coda retry + DSN 3. Controlli SPF = IP ok? DKIM = firma ok? Spam + antivirus 4. Consegna IMAP MDA → Mailbox Client legge 993/995 Push IDLE, flags \Seen
💬 Per maturità

Collega DNS: senza MX non c'è posta. Se ti chiedono "cosa succede se MTA destinatario è spento?" → MTA mittente accoda e ritenta (4xx = temporaneo, riprova). Dopo giorni manda bounce DSN. Conosci codici 250, 354, 550 mailbox not found.

6. Verifica / Esercizio in classe

🔬 Attività - 30 minuti a coppie

Analizzi un caso reale e configuri un client. Rispondi sul quaderno, poi in Packet Tracer se disponibile.

  1. Mario invia a 2 destinatari, uno con dominio inesistente. Quali codici SMTP vedi? Distingui errore 4xx vs 5xx e cosa fa il server.
  2. Con Thunderbird imposti IMAP 143 senza TLS su WiFi pubblico. Cosa rischi? Proponi porta e modalità corretta.
  3. Hai allegato PDF da 5 MB. Perché su rete vedi ~6.8 MB? Spiega ruolo di base64 e Content-Type. Come calcoli overhead?
  4. Utente lamenta: "su telefono ho letto email, su PC risulta non letta". Sta usando POP3 o IMAP? Giustifica e proponi migrazione.
  5. Disegna header email con From, To, Subject, MIME-Version, Content-Type multipart/alternative con boundary. Dove finisce header e inizia body?
✅ Soluzione ragionata

1) Valida: 250 2.1.5 Ok + queued. Inesistente: 550 5.1.1 User unknown o DNS MX NXDOMAIN → bounce immediato 5xx, non ritenta. 4xx tipo 451 Greylisted → MTA ritenta dopo minuti.
2) Su 143 plain intercettano password USER/PASS in chiaro + contenuto FETCH. Soluzione: 993 IMAP con SSL/TLS implicito o 143 + STARTTLS + CERT valido, disattiva login senza TLS.
3) Base64 codifica 3 byte → 4 char ASCII = overhead 33%. 5 MB × 4/3 ≈ 6.66 MB + header + boundary ≈ 6.8 MB. Content-Type: application/pdf; Content-Transfer-Encoding: base64.
4) POP3 scarica e segna locale, non propaga \Seen flag sul server. Server non sa che è stato letto. Soluzione: passa a IMAP, lascia messaggi sul server, sincronizza flags. Se vuole copia locale, usa client IMAP offline.
5) Header fino a riga vuota \r\n\r\n. Poi body. Es: Content-Type: multipart/alternative; boundary="abc" poi --abc part text/plain, poi --abc part text/html, poi --abc--. Ricorda Message-ID e Date obbligatori.

✓Asincrono e accodato: MUA→MSA 587/465 AUTH, MTA→MTA 25 con MX DNS e retry, MDA→Mailbox, poi IMAP/POP3.
✓SMTP porte: 25 relay server, 587 submission STARTTLS + AUTH (consigliata), 465 implicit TLS.
✓Messaggio = header + blank line + body. MIME aggiunge Content-Type, Transfer-Encoding base64/quoted-printable, multipart con boundary.
✓POP3 scarica e cancella, solo INBOX, offline; IMAP sincronizza, multi-cartella, multi-device, SEARCH/FETCH parziale. Standard moderno = IMAP 993.
✓Sicurezza: TLS per MUA, STARTTLS opportunistic tra MTA, SPF verifica MAIL FROM, DKIM firma, DMARC policy. 4xx temporaneo vs 5xx permanente.

📚 Prossimo passo - FTP RTP e riepilogo protocolli

Chiudiamo il Modulo 1 con FTP per il trasferimento file (modalità attiva/passiva che appare alla maturità) e RTP per voce/video, poi mappa completa DNS-HTTP-SMTP-POP3-IMAP. Ripassa porte: 21, 25, 53, 80, 110, 143, 443, 465, 587, 993, 995.