2010/01/01 by Maarten Oelering.
A propos de l’en-tête Return-Path header
L’erreur la plus courante des expéditeurs consiste à ajouter un en-tête Return-Path à leur email. Même certains logiciels de messagerie bien connus le font. Ces programmes ont probablement été écrit par des programmeurs qui copient d’autres personnes plutôt que de lire les RFC (standards Internet qui spécifient SMTP et MIME).
Que dit la norme sur Return-Path? L’extrait suivant provient de la RFC 5321 qui spécifie le protocole SMTP:
Lorsque le serveur SMTP effectue la «livraison finale» d’un message, il insère une ligne return-path au début des données de l’email. Cette utilisation du return-path est obligatoire; les systèmes de messagerie DOIVENT le prendre en charge. L’en-tête return-path préserve les informations contenues dans la commande MAIL FROM. Ici, la livraison finale signifie que le message a quitté l’environnement SMTP. Normalement, cela signifie qu’il a été remis destinataire final ou à un dépôt de courrier associé, mais dans certains cas, il peut encore être traité ultérieurement et transmis par un autre système de courrier.
Ainsi, lorsque l’e-mail quitte l’environnement SMTP, par exemple lors de la livraison dans une boîte aux lettres, le champ Return-Path est ajouté pour préserver la valeur de la commande SMTP MAIL FROM. C’est donc le fournisseur de boîtes aux lettres (Google, Hotmail, Yahoo, par exemple) qui ajoute l’en-tête Return-Path.
Lorsque vous regardez l’en-tête complet d’un mail dans votre boîte aux lettres, le champ Return-Path apparaît quelque part en haut. Le plus souvent, juste au-dessus de l’en-tête Received indiquant l’adresse IP publique à partir de laquelle le courrier a été envoyé. Lorsque vous voyez un deuxième en-tête Return-Path quelque part en dessous, c’est l’en-tête erroné ajouté par l’expéditeur.
Vous vous demandez peut-être comment définir le SMTP MAIL FROM ou expéditeur de l’enveloppe. C’est l’adresse à laquelle les mails de rebond sont envoyés. En tant que fournisseur de service de messagerie, vous souhaitez définir une adresse générique différente de l’en-tête From: afin de traiter les bounces asynchrones.
L’expéditeur de l’enveloppe est positionné, lorsque l’email entre dans l’environnement SMTP, souvent par une API telle que JavaMail, System.Net.Mail.MailMessage ou PHPMailer. En Java, ce n’est pas trop difficile. Vous pouvez définir SMTP MAIL FROM via la propriété mail.smtp.from de JavaMail.
Avec .NET vous avez un problème. La classe MailMessage vous permet de définir une propriété Sender, mais elle ajoute également l’en-tête Sender. Vous donc êtes obligé d’utiliser une bibliothèque de courrier tiers sous Windows, par exemple : mail.ddl, email ASP.NET ou Chilkat.
Avec la fonction mail de PHP, vous pouvez utiliser des options. Si sendmail est utilisé, l’option “-f” définira le SMTP MAIL FROM. Notez que PHPMailer ajoute à tort un en-tête Return-Path dans le courrier sortant.
Mise à jour: à partir de PHPMailer version 5.2.8, l’en-tête Return-Path n’est plus ajouté dans les messages créés.
Plus d’information?
Si vous souhaitez en savoir plus sur la manière dont nous pouvons vous aider, envoyez-nous simplement un message via notre page de contact.