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