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) :
-
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
-
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
-
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
-
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) :
- Identifier l'encodage : Détecter le jeu de caractères du message entrant
- Convertir en toute sécurité : Transformer vers l'encodage du système cible
- Marquer clairement : Indiquer l'encodage dans les en-têtes (MIME Content-Type)
- 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 :
- Suivre les Message-IDs à travers les passerelles
- Ajouter des en-têtes de traçage spécifiques à la passerelle
- Limiter le nombre de sauts à travers les traductions de passerelle
- 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)
- Documenter les traductions : Documenter clairement toutes les traductions d'adresses et d'en-têtes
- Préserver l'information : Préserver autant que possible les informations d'origine
- Ajouter le traçage : Ajouter des en-têtes spécifiques à la passerelle pour le débogage
- Tester rigoureusement : Tester avec divers types de messages et cas limites
- Surveiller : Journaliser les opérations de la passerelle pour le dépannage
- Mettre à jour : Maintenir le logiciel de la passerelle à jour pour la sécurité et la compatibilité