Passa al contenuto principale

Appendice D. Scenari (Scenarios)

Questa appendice presenta scenari tipici di transazione SMTP per illustrare le operazioni del protocollo.

D.1. Scenario di transazione SMTP tipico (A Typical SMTP Transaction Scenario)

Scenario: [email protected] invia posta a [email protected]

# Stabilimento connessione
C: <stabilisce connessione TCP alla porta 25 di server.example>
S: 220 server.example ESMTP Postfix

# Saluto client
C: EHLO client.example.com
S: 250-server.example
S: 250-SIZE 52428800
S: 250-8BITMIME
S: 250-STARTTLS
S: 250 HELP

# Transazione posta
C: MAIL FROM:<[email protected]>
S: 250 2.1.0 Ok

C: RCPT TO:<[email protected]>
S: 250 2.1.5 Ok

# Contenuto messaggio
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>

C: From: Alice <[email protected]>
C: To: Bob <[email protected]>
C: Subject: Hello
C: Date: Wed, 24 Dec 2024 10:00:00 +0000
C:
C: Hi Bob,
C:
C: This is a test message.
C:
C: Best regards,
C: Alice
C: .

S: 250 2.0.0 Ok: queued as A1B2C3D4E5

# Terminazione sessione
C: QUIT
S: 221 2.0.0 Bye

D.2. Scenario di transazione SMTP interrotta (Aborted SMTP Transaction Scenario)

Scenario: Il mittente interrompe la transazione a metà

S: 220 server.example ESMTP

C: EHLO client.example
S: 250 server.example

C: MAIL FROM:<[email protected]>
S: 250 Ok

C: RCPT TO:<[email protected]>
S: 250 Ok

C: RCPT TO:<[email protected]>
S: 550 5.1.1 User unknown

# Il mittente decide di interrompere e ricominciare
C: RSET
S: 250 Ok

# Inizia nuova transazione
C: MAIL FROM:<[email protected]>
S: 250 Ok

C: RCPT TO:<[email protected]>
S: 250 Ok

C: DATA
S: 354 Start mail input

C: (contenuto messaggio)
C: .
S: 250 Ok: queued as XYZ123

C: QUIT
S: 221 Bye

D.3. Scenario di posta inoltrata (Relayed Mail Scenario)

Scenario: Posta da [email protected] a [email protected] attraverso relay.example

Passaggio 1: origin.example → relay.example

C: EHLO origin.example
S: 250 relay.example

C: MAIL FROM:<[email protected]>
S: 250 Ok

C: RCPT TO:<[email protected]>
S: 250 Ok (il relay accetta di inoltrare)

C: DATA
S: 354 Start mail input
C: (messaggio)
C: .
S: 250 Ok: queued for relay

Passaggio 2: relay.example → final.example

# relay.example ora agisce come client
C: EHLO relay.example
S: 250 final.example

C: MAIL FROM:<[email protected]>
S: 250 Ok

C: RCPT TO:<[email protected]>
S: 250 Ok

C: DATA
S: 354 Start mail input
C: Received: from origin.example by relay.example; ...
C: (messaggio originale)
C: .
S: 250 Ok: delivered to bob

C: QUIT
S: 221 Bye

D.4. Scenario di verifica e invio (Verifying and Sending Scenario)

Scenario: Il client verifica l'indirizzo prima dell'invio

S: 220 server.example ESMTP

C: EHLO client.example
S: 250 server.example

# Verifica se il destinatario esiste
C: VRFY bob
S: 250 Bob Smith <[email protected]>

# Invia posta
C: MAIL FROM:<[email protected]>
S: 250 Ok

C: RCPT TO:<[email protected]>
S: 250 Ok

C: DATA
S: 354 Start mail input
C: (messaggio)
C: .
S: 250 Ok

C: QUIT
S: 221 Bye

Alternativa: VRFY disabilitato per motivi di sicurezza

C: VRFY bob
S: 252 2.5.2 Cannot VRFY user, but will accept message

# Il client continua comunque
C: MAIL FROM:<[email protected]>
S: 250 Ok
...