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
...