La posta elettronica

Il viaggio di una eMail


Supponiamo che il signor Rossi ( mariorossi@comefunziona.net ) voglia inviare una eMail al suo amico Bianchi (carlobianchi@yahoo.com). Vediamo passo passo cosa succede sul web e quale viaggio compie la eMail:

Passo 1
Il signor Rossi usa (ad esempio) Microsoft Outlook Express per compilare la eMail e alla fine preme il tasto di Invio Mail per cominciare il processo di invio.

Passo 2
Outlook Express si connette al server SMTP di comefunziona.net usando la porta 25 e gli comunica l'indirizzo del mittente, quello del destinatario ed il contenuto della email.

Passo 3
Il server SMTP legge i dati e prende per prima cosa l'indirizzo del destinatario dividendolo in due parti:

Il nome : carlobianchi
Il dominio : yahoo.com

Se il dominio è lo stesso del mittente (non è il nostro caso), ciò avrebbe significato che entrambi gli utenti hanno un account sulla stessa macchina per cui l'SMTP si sarebbe limitiato ad inoltrare il messaggio al POP3 che lo avrebbe recapitato nella cassetta di Bianchi.

Nel nostro caso i domini sono differenti per cui l'SMTP server deve rintracciare l'altra macchina a cui inviare i dati. Per fare questo si connette ad un DNS server (Domain Name Server) e gli "chiede" l'IP address del server yahoo.com a cui si dovrà connettere per inviare la email.

Passo 4
Una volta ottenuto l'IP address di yahoo.com, l'SMTP di comefunziona.net si connette ad esso ed inizia con lui lo stesso tipo di conversazione che era avvenuta nel punto 2 tra il Outlook Express e l'SMTP di comefunziona. L'unica differenza è che il server di Yahoo riconosce la cassetta postale carlobianchi sul suo dominio ed inoltra quindi il messaggio al POP server che lo inserisce nella mailbox del signor Bianchi.


Un disegno riasuntivo del viaggio compiuto dalla nostra eMail

Se per qualche motivo il server SMTP di comefunziona.net non fosse riuscito a connettersi al server SMTP di yahoo.com, la mail sarebbe rimasta in una coda e periodicamente l'invio sarebbe stato ritentato (solitamente ogni 4 ore e per un periodo massimo di circa 5 giorni dopo il quale la mail non consegnata ritorna al destinatario).

La conversazione tra due SMTP o tra il client Mail e l'SMTP è molto semplice e vale la pena mostrarne un esempio per capire meglio come funziona il protocollo SMTP (in verde potete identificare le richieste mentre in rosso le risposte del server SMTP):


helo Test
250 yahoo.com Hello comefunziona.net[66.218.71.198], pleased to meet you
mail from: mariorossi@comefunziona.net
250 2.1.0 mariorossi@comefunziona.net... Sender ok
rcpt to: carlobianchi@yahoo.com
250 2.1.5 carlobianchi@yahoo.com... Recipient ok
data
354 Enter mail, end with "." on a line by itself
from: mariorossi@comefunziona.net
to:carlobianchi@yahoo.com
subject: Test di invio mail
Ciao Carlo, sto testando la mia mail
.
250 2.0.0 Message accepted for delivery
quit
221 2.0.0 Closing connection

Potete provare anche voi ad inviare una eMail instaurando un dialogo identico a quello appena visto. Non dovete far altro che connettervi (con il Telnet di Windows) ad un mail server sulla porta 25 e rispondere alle domande.

Nella lista seguente vengono elencati tutti i comandi che il server mail può capire:


HELO - Introduzione
EHLO - Introduzione e richiesta del modo esteso
MAIL FROM: - Specifica del mittente
RCPT TO: - Specifica del destinatario
DATA - Specifica del corpo del messaggio (To, From e Subject)
RSET - Reset
QUIT - Fine della sessione
HELP - Help sui comandi
VRFY - Verifica di un indirizzo
EXPN - Indirizzo esteso
VERB - Nascosto