Blog

Utiliser un encodage MIME correct permet d’éviter les échecs DKIM dans Outlook

Postmastery / DeliverNow travaille pour de nombreux routeurs et marques en leur permettant d’optimiser leur délivrabilité.
Récemment, un de nos clients a été confronté à un problème mystérieux d’échec DKIM lors de ses envois vers les domaines d’Outlook.com. (Une description générale de DKIM et de son fonctionnement est disponible sur dkim.org.)

Analyse des entêtes SMTP

La première chose que nous avons faite a été d’analyser les entêtes email du client en envoyant un message échantillon vers l’outil gratuit de Postmastery EmailAudit.com.
Nous avons alors trouvé une première indication dans ces entêtes.

Authentication-Results: spf=pass (sender IP is xxxx) smtp.mailfrom=cebounce.domain.com; Hotmail.com; dkim=fail (body hash did not verify) header.d=domain.com;Hotmail.com; dmarc=pass action=none header.from=domain.com

DKIM est basé sur le hachage de certaines parties de l’email. Le ‘body hash’ est une chaîne de caractères générée par l’algorithme de hachage à partir de corps du message.

A la vue de cette erreur, nous avons constaté que la canonicalisation du corps du message était paramétrée en mode relâché (relaxed), ce qui devrait permettre d’éviter les erreurs de hachage du corps du message. C’est le paramétrage recommandé si vous souhaitez minimiser les problèmes avec DKIM.

Analyse des rapports DMARC pour vérifier la validation DKIM

Logiquement, l’étape suivante était l’analyse des rapports DMARC afin de vérifier la validation DKIM pour tous les messages. Malheureusement, vers la fin d’avril de cette année (2018), Hotmail.com a temporairement stoppé l’envoi des rapports DMARC, nous ne pouvions donc pas effectuer ces contrôles en nous basant sur ces rapports. La seule solution restante était de vérifier la validation DKIM en se basant sur les emails reçus sur nos propres boîtes de messagerie.

Nous avons d’abord extrait le contenu des emails échantillons et nous avons essayé d’envoyer exactement les mêmes messages directement vers le MTA. Nous avons utilisé l’encodage suivant pour le paramétrage de nos tests:

–add-header “MIME-Version: 1.0” –add-header “Content-Type: text/html” –add-header “Content-Transfer-Encoding: quoted-printable”

DKIM étant correctement validé pour tous nos tests. Nous avons à nouveau vérifié les emails que nous avait transmis notre client. La solution commençait à se rapprocher. Nous avons continué à collecter des données en envoyant quelques emails tout en loggant la totalité des données de transaction SMTP. En faisant cela, nous espérions découvrir quelque chose dans le contenu qui soit modifié ou qui provoque l’échec de la validation DKIM par Microsoft.

Ce fut un succès. En comparant le données binaires du client avec les nôtres, nous avons fini par trouver le coupable. L’application de notre client n’encodait pas correctement les caractères NON-ASCII dans la partie TEXT/PLAIN.

Il y avait dans le contenu des messages des caractères UTF-8 non compris dans le jeu de caractères ASCII alors que les entêtes MIME annonçaient du contenu ASCII. A la place, elles auraient dû spécifier UTF-8. Bien que ce paramétrage puisse ne pas fonctionner avec certains receveurs qui ne supportent pas 8BITMIME, il est préférable d’utiliser l’encodage ‘quoted-printable’ pour le ‘transfer encode’ UTF-8

Conclusion

Il faut utiliser le bon encodage et toujours effectuer des tests pour vérifier les entêtes des messages pour de nombreux receveurs comme Outlook, Gmail et Yahoo. Nous conseillons d’utiliser Quoted-Printable pour le transfer encoding afin d’obtenir des résultats optimaux.

Plus d’informations

Si vous souhaitez en savoir plus sur la façon dont nous pouvons vous aider à résoudre vos problèmes de délivrabilité, laissez nous un message via notre page de contact

Commentaires (0)

    Add a Comment