Aller au contenu principal

Annexe E. Autres problèmes de passerelle (Other Gateway Issues)

Cette annexe traite des considérations spéciales pour les passerelles de courrier qui connectent SMTP à d'autres systèmes de courrier.

E.1. Responsabilités de la passerelle (Gateway Responsibilities)

Une passerelle de courrier connectant SMTP à un autre système de courrier DOIT (MUST) :

  1. Traduire les adresses (Translate Addresses)

    • Convertir entre le format SMTP et le format de l'autre système
    • Maintenir un mappage bidirectionnel
    • Documenter les règles de traduction
  2. Traduire les en-têtes (Translate Headers)

    • Mapper les champs d'en-tête SMTP aux équivalents de l'autre système
    • Préserver la signification sémantique
    • Ajouter des champs de traçage spécifiques à la passerelle
  3. Traduire le contenu (Translate Content)

    • Gérer les différences de jeu de caractères
    • Convertir l'encodage du contenu si nécessaire
    • Préserver les pièces jointes dans la mesure du possible
  4. Gérer les notifications de livraison (Handle Delivery Notifications)

    • Traduire les DSN entre les systèmes
    • Signaler correctement les échecs
    • Mapper les codes d'erreur

E.2. Exemple de passerelle X.400 (X.400 Gateway Example)

SMTP vers X.400 :

  • Convertir les adresses RFC 5322 en adresses O/R X.400
  • Mapper les en-têtes SMTP aux en-têtes P2 X.400
  • Préserver le contenu du message

X.400 vers SMTP :

  • Convertir les adresses O/R X.400 au format RFC 5322
  • Mapper les en-têtes X.400 aux en-têtes SMTP
  • Maintenir les rapports de livraison

E.3. Défis de mappage d'adresse (Address Mapping Challenges)

Problème : Schémas d'adressage différents

SMTP : [email protected]
UUCP : host!user
X.400 : /C=US/ADMD=ATT/PRMD=XYZ/S=Smith/G=John/

Les passerelles DOIVENT (MUST) :

  • Traduire les adresses dans les deux sens
  • Gérer les adresses dans différentes parties (enveloppe et en-tête)
  • Gérer les adresses non traduisibles

E.4. Problèmes de jeu de caractères (Character Set Issues)

SMTP utilise traditionnellement ASCII 7 bits. Les passerelles vers des systèmes avec différents jeux de caractères DOIVENT (MUST) :

  1. Identifier l'encodage : Détecter le jeu de caractères du message entrant
  2. Convertir en toute sécurité : Transformer vers l'encodage du système cible
  3. Marquer clairement : Indiquer l'encodage dans les en-têtes (MIME Content-Type)
  4. Gérer les échecs : Gérer les caractères non traduisibles

E.5. Conversion de contenu (Content Conversion)

Lorsque les formats de contenu diffèrent :

Texte :

  • Conversion de fin de ligne (CRLF vs LF vs CR)
  • Conversion de jeu de caractères
  • Pliage/dépliage de texte

Binaire :

  • Encodage (Base64, Quoted-Printable)
  • Préservation du type
  • Gestion des noms de fichiers

Texte enrichi :

  • De/vers HTML et autres formats
  • Préservation du formatage
  • Repli vers texte brut

E.6. Prévention de boucle dans les passerelles (Loop Prevention in Gateways)

Les passerelles DOIVENT (MUST) prévenir les boucles de courrier :

SMTP → Passerelle A → Autre système → Passerelle B → SMTP (boucle !)

Méthodes de prévention :

  1. Suivre les Message-IDs à travers les passerelles
  2. Ajouter des en-têtes de traçage spécifiques à la passerelle
  3. Limiter le nombre de sauts à travers les traductions de passerelle
  4. Détecter le traitement répété de la passerelle

E.7. Gestion des erreurs (Error Handling)

Erreurs spécifiques à la passerelle :

Échecs de traduction :

  • Adresse non traduisible → Retourner une erreur 5xx
  • Problèmes de jeu de caractères → Retourner une erreur ou convertir au mieux
  • Incompatibilité de format → Rejeter ou convertir avec avertissement de perte

Échecs de livraison :

  • L'autre système rejette → Traduire en code d'erreur SMTP
  • Délai d'expiration de l'autre système → Retourner un échec transitoire (4xx)
  • Échec permanent → Retourner un échec permanent (5xx)

E.8. En-têtes Received de passerelle (Gateway Received Headers)

Les passerelles DOIVENT (MUST) ajouter des en-têtes Received appropriés :

Received: from smtp.example.com by gateway.example.com
with SMTP (gateway to X400) id 12345
for [email protected]; Wed, 24 Dec 2024 10:00:00 +0000

Incluant :

  • Protocole source (SMTP)
  • Protocole de destination (dans un commentaire)
  • Identification de la passerelle
  • Horodatage

E.9. Meilleures pratiques (Best Practices)

  1. Documenter les traductions : Documenter clairement toutes les traductions d'adresses et d'en-têtes
  2. Préserver l'information : Préserver autant que possible les informations d'origine
  3. Ajouter le traçage : Ajouter des en-têtes spécifiques à la passerelle pour le débogage
  4. Tester rigoureusement : Tester avec divers types de messages et cas limites
  5. Surveiller : Journaliser les opérations de la passerelle pour le dépannage
  6. Mettre à jour : Maintenir le logiciel de la passerelle à jour pour la sécurité et la compatibilité