FAQ n°20623, publiée le 09/11/2020, mise à jour le 26/02/2024
Comment supprimer l'échec de distribution 550-5-6-11 ou 552 5.2.0 d'un email ?

L'envoi d'un email peut être accepté par un serveur SMTP, mais générer ensuite un échec de distribution avec le retour suivant :


550-5-6-11 contains invalid characters (bare line feed characters) 


ou :


552 5.2.0 Message Contains Bare LF And Is Violating 822.Bis Section 2.3



C'est notamment le cas des serveurs SMTP utilisés par les solutions Microsoft Exchange / Office 365 / Orange, si le message a été formaté avec des sauts de lignes avec LF au lieu de CRLF. 


Afin de permettre la distribution du message dans ce cas, il faut modifier son contenu pour remplacer les éventuels LF par CRLF.


La procédure suivante peut être utilisée : 


// Résumé : Remplace les caractères LF (Line Feed)

// non précédés de CR (Carriage Return) d'un CR

// Syntaxe :

//LineFeedSeulsEnRC (<sTexteAModifier>)

PROCÉDURE LineFeedSeulsEnRC(sTexteAModifier)

LineFeed est une chaîne ANSI = Caract(10)

CarriageReturn est une chaîne ANSI = Caract(13)

nPosLF est un entier

BOUCLE

nPosLF=Position(sTexteAModifier,LineFeed,nPosLF+1)

SI nPosLF<1 ALORS SORTIR

SI nPosLF>1 _ET_ sTexteAModifier[[nPosLF-1]]<>CarriageReturn ALORS

sTexteAModifier=ChaîneInsère(sTexteAModifier,CarriageReturn,nPosLF)

nPosLF++

FIN

FIN


On l'appliquera aux différents contenus de l'email à envoyer : 

LineFeedSeulsEnRC(MonEmail..TexteBrut)

LineFeedSeulsEnRC(MonEmail..HTML)

LineFeedSeulsEnRC(MonEmail..Message)


Liens utiles sur le sujet :