Référence
En-têtes et réponses SMTP
Les en-têtes qu’Emailit ajoute, réécrit ou supprime sur les e-mails SMTP, comment lire les ID des e-mails dans la réponse 250 et comment ajouter vous-même List-Unsubscribe.
Emailit relaie pour l’essentiel tel quel le message MIME que vous soumettez via SMTP, mais il modifie quelques en-têtes pour que le message soit authentifié et puisse être suivi. Cette page liste ces modifications, explique la réponse 250 qui contient les nouveaux ID des e-mails et présente les en-têtes que vous devez ajouter vous-même.
En-têtes ajoutés ou réécrits par Emailit
| En-tête | Ce que fait Emailit |
|---|---|
Received |
Ajoute des en-têtes de traçage pour le relais et pour le serveur de messagerie Emailit qui livre le message. |
Message-ID |
Remplace le vôtre par <token@your-domain>, le domaine étant celui de votre adresse d’expéditeur. La copie de chaque destinataire reçoit son propre Message-ID. |
Date |
Le définit lorsqu’Emailit traite le message pour la première fois en vue de sa livraison. |
Subject |
Le réécrit à partir de l’objet décodé et réencode les caractères non ASCII. |
Return-Path |
Définit une adresse de rebond sur votre sous-domaine de return-path, emailit.<your-domain>. La même adresse sert d’expéditeur d’enveloppe : SPF réussit donc pour votre domaine. |
X-Emailit-ID |
Ajoute le jeton de l’e-mail. |
Feedback-ID |
Ajoute un identifiant que les fournisseurs de messagerie utilisent dans les rapports de plainte. |
DKIM-Signature |
Signe le message avec la clé DKIM de votre domaine (sélecteur emailit par défaut). Une seconde signature pour emailitmail.com peut être ajoutée pour les boucles de rétroaction (feedback loops) des plaintes. |
La signature DKIM couvre notamment les en-têtes From, To, Cc, Subject, Date, Message-ID, Reply-To, MIME et List-*. Ne modifiez pas un message après sa signature par Emailit, par exemple avec une liste de diffusion qui réécrit l’objet, sinon la signature échoue.
En-têtes supprimés par Emailit
| En-tête | Quand |
|---|---|
Bcc |
Toujours, pour que les destinataires en copie cachée restent masqués. |
Reply-To |
Lorsqu’il désigne la même adresse que From. Certains filtres anti-spam pénalisent un Reply-To redondant. |
Content-Disposition |
Au niveau supérieur du message. Les parties contenant des pièces jointes conservent le leur. |
Tout le reste, y compris vos propres en-têtes X-, est livré sans modification.
Les en-têtes de contrôle ne sont pas lus via SMTP
N’incluez pas d’en-tête X-Emailit-ID dans les messages que vous soumettez. Emailit s’en sert pour reconnaître les messages qu’il a déjà traités, et un message qui en contient un échappe à la réécriture des en-têtes et à la signature DKIM décrites ci-dessus.
La réponse 250
Quand le relais accepte un message, sa réponse à la fin de DATA liste les ID d’e-mails Emailit créés, un par destinataire :
250 2.0.0 OK: queued as em_33VtK8mRq1xZp7LwN4cY2bHsDfa, em_33VtK8nB5rTq0YxW3mJk9PdLsUe2.0.0est le code de statut étendu de succès.- Chaque ID
em_est le même ID que celui utilisé par l’API, le tableau de bord et les webhooks pour l’e-mail de ce destinataire. - La ligne de réponse a une longueur limitée. Si tous les ID ne tiennent pas, ce qui arrive vers 15 destinataires, la réponse ne contient que le premier ID. Retrouvez les autres dans Email APIEmails ou dans les événements webhook.
La plupart des bibliothèques exposent la réponse. Dans Nodemailer, il s’agit de info.response. Dans PHPMailer, appelez $mail->getSMTPInstance()->getLastReply() après send(). Enregistrez l’ID à côté de votre propre enregistrement, pour rapprocher les événements webhook ou retrouver l’e-mail plus tard avec Récupérer un e-mail.
Ajouter vous-même List-Unsubscribe
Emailit n’ajoute les en-têtes List-Unsubscribe qu’aux e-mails de campagne. Si vous envoyez des newsletters ou d’autres envois en masse via SMTP, ajoutez vous-même les deux en-têtes au message :
List-Unsubscribe: <https://acme.com/unsubscribe?u=881&l=digest>, <mailto:unsubscribe@acme.com?subject=unsubscribe-881>
List-Unsubscribe-Post: List-Unsubscribe=One-ClickL’URL https doit accepter une requête POST avec le corps List-Unsubscribe=One-Click et désinscrire la personne sans étape de confirmation (RFC 8058). Emailit inclut les deux en-têtes dans la signature DKIM, ce que Gmail et Yahoo exigent pour la désinscription en un clic.
await transporter.sendMail({
from: 'Acme <news@acme.com>',
to: 'ada@example.com',
subject: 'Acme weekly digest',
html: '<p>This week at Acme…</p>',
headers: {
'List-Unsubscribe': '<https://acme.com/unsubscribe?u=881&l=digest>',
'List-Unsubscribe-Post': 'List-Unsubscribe=One-Click',
},
});msg["List-Unsubscribe"] = "<https://acme.com/unsubscribe?u=881&l=digest>"
msg["List-Unsubscribe-Post"] = "List-Unsubscribe=One-Click"$mail->addCustomHeader('List-Unsubscribe', '<https://acme.com/unsubscribe?u=881&l=digest>');
$mail->addCustomHeader('List-Unsubscribe-Post', 'List-Unsubscribe=One-Click');Voir aussi
- Paramètres SMTP
- En-têtes et métadonnées pour les envois via l’API
- Dictionnaire des en-têtes d’e-mail
- Suivi des ouvertures et des clics