Aller au contenu principal

Annexe D. Scénarios (Scenarios)

Cette annexe présente des scénarios de transaction SMTP typiques pour illustrer les opérations du protocole.

D.1. Scénario de transaction SMTP typique (A Typical SMTP Transaction Scenario)

Scénario : [email protected] envoie du courrier à [email protected]

# Établissement de connexion
C: <établit une connexion TCP au port 25 de server.example>
S: 220 server.example ESMTP Postfix

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

# Transaction de courrier
C: MAIL FROM:<[email protected]>
S: 250 2.1.0 Ok

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

# Contenu du message
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

# Terminaison de session
C: QUIT
S: 221 2.0.0 Bye

D.2. Scénario de transaction SMTP abandonnée (Aborted SMTP Transaction Scenario)

Scénario : L'expéditeur abandonne la transaction à mi-chemin

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

# L'expéditeur décide d'abandonner et de recommencer
C: RSET
S: 250 Ok

# Démarre une nouvelle transaction
C: MAIL FROM:<[email protected]>
S: 250 Ok

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

C: DATA
S: 354 Start mail input

C: (contenu du message)
C: .
S: 250 Ok: queued as XYZ123

C: QUIT
S: 221 Bye

D.3. Scénario de courrier relayé (Relayed Mail Scenario)

Scénario : Courrier d'[email protected] vers [email protected] via relay.example

Étape 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 (le relais accepte de transférer)

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

Étape 2 : relay.example → final.example

# relay.example agit maintenant comme 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: (message original)
C: .
S: 250 Ok: delivered to bob

C: QUIT
S: 221 Bye

D.4. Scénario de vérification et d'envoi (Verifying and Sending Scenario)

Scénario : Le client vérifie l'adresse avant l'envoi

S: 220 server.example ESMTP

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

# Vérifier si le destinataire existe
C: VRFY bob
S: 250 Bob Smith <[email protected]>

# Envoyer le courrier
C: MAIL FROM:<[email protected]>
S: 250 Ok

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

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

C: QUIT
S: 221 Bye

Alternative : VRFY désactivé pour des raisons de sécurité

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

# Le client continue quand même
C: MAIL FROM:<[email protected]>
S: 250 Ok
...