Qu’est-ce qu’une adresse de rebond ?
Une adresse de rebond est l’adresse technique utilisée pour recevoir les notifications d’échec de livraison. Elle est souvent publiée dans le champ Return-Path plutôt que dans le champ From visible par le destinataire.
Comment fonctionnent les adresses de rebond
Lorsqu’un message ne peut pas être remis, le serveur destinataire renvoie un rapport à l’adresse d’enveloppe. Le serveur d’envoi peut ensuite classer l’échec, mettre à jour la liste et éviter de nouvelles tentatives inutiles.
From: John Doe <[email protected]>
MAIL FROM: <[email protected]>
Exemple de conversation SMTP
La conversation SMTP montre que l’adresse d’enveloppe peut différer de l’expéditeur affiché.
Client: MAIL FROM: <[email protected]>
Server: 250 OK
Client: RCPT TO: <[email protected]>
Server: 550 No such user here
Client: QUIT
# Later, server sends bounce to [email protected]
Types de rebonds de courriel
Les rebonds se distinguent par leur cause et par la possibilité de réussir lors d’une nouvelle tentative.
Rebonds définitifs
Une adresse inexistante, désactivée ou rejetée de façon permanente produit un rebond définitif. Retirez-la de la liste après confirmation.
Rebonds temporaires
Une boîte pleine, une panne temporaire ou une limitation de débit peut produire un rebond temporaire. Appliquez des tentatives espacées et une limite claire.
Rebonds dus au blocage
Un filtre, une politique de réputation ou une liste de blocage peut refuser le message. Corrigez la cause avant de relancer l’envoi.
Configuration de l’adresse de rebond
La configuration doit séparer l’adresse de retour technique de l’adresse From présentée à l’utilisateur et permettre d’associer chaque échec à la campagne concernée.
Définir le chemin de retour dans les en-têtes de courriel
Le champ Return-Path est fixé par l’enveloppe SMTP. Utilisez une adresse contrôlée par votre domaine et vérifiez que les retours sont bien collectés.
$to = "[email protected]";
$subject = "Test Email";
$message = "Email body";
$headers = "From: [email protected]\r\n";
$headers .= "Return-Path: [email protected]\r\n";
mail($to, $subject, $message, $headers, "-f [email protected]");
$mail = new PHPMailer();
$mail->From = "[email protected]";
$mail->Sender = "[email protected]"; // Return path
$mail->addAddress("[email protected]");
$mail->Subject = "Test Email";
$mail->send();
# /etc/postfix/main.cf
sender_canonical_maps = hash:/etc/postfix/sender_canonical
# /etc/postfix/sender_canonical
@example.com [email protected]
# Apply changes
postmap /etc/postfix/sender_canonical
systemctl reload postfix
Services dédiés de traitement des rebonds
Un service spécialisé peut parser les rapports, classer les erreurs et transmettre les événements à votre système de messagerie. Contrôlez son domaine d’envoi et ses règles de conservation.
{
"Message": {
"Subject": "Test",
"From": "[email protected]",
"ReturnPath": "[email protected]"
}
}
const msg = {
to: '[email protected]',
from: '[email protected]',
replyTo: '[email protected]',
return_path: '[email protected]',
subject: 'Test Email',
text: 'Email body'
};
Conventions de nommage des adresses de rebond
Choisissez des noms stables, explicites et séparés des boîtes opérationnelles afin de faciliter le filtrage et l’analyse.
Approche par sous-domaine
Un sous-domaine réservé isole les retours et permet d’appliquer des politiques SPF, DKIM et DMARC adaptées.
[email protected] # General bounces
[email protected] # No-reply emails
[email protected] # Returns/receipts
Adresse propre à une campagne
Une adresse par campagne simplifie l’attribution des rebonds et permet d’identifier rapidement une liste ou un contenu problématique.
[email protected]
Return Path d’enveloppe variable (VERP)
VERP encode le destinataire dans l’adresse d’enveloppe. Le système peut ainsi relier un rebond à une adresse précise sans analyser uniquement le contenu du rapport.
Sending to: [email protected]
Return path: [email protected]
When bounce arrives at bounces+*, parse to identify failed recipient
Traitement des messages de rebond
Traitez les rapports rapidement, dédupliquez les événements et distinguez les échecs permanents des échecs temporaires.
Analyse automatisée des rebonds
Un parseur doit reconnaître les formats de rapport, extraire l’adresse concernée, la réponse SMTP et la classification, puis enregistrer une décision traçable.
import email
from email import policy
def parse_bounce(raw_email):
msg = email.message_from_string(raw_email, policy=policy.default)
# Extract bounce type
if "550" in msg.get_payload():
return "hard_bounce"
elif "452" in msg.get_payload():
return "soft_bounce"
# Extract failed recipient
for part in msg.walk():
if part.get_content_type() == "message/delivery-status":
# Parse delivery status
pass
return bounce_info
# Integrate with mailing list to remove hard bounces
Traitement des rebonds par webhook
Un webhook transmet les événements à votre application. Authentifiez les appels, vérifiez leur signature et rendez le traitement idempotent.
POST /bounce-webhook
{
"email": "[email protected]",
"event": "bounce",
"reason": "550 5.1.1 User unknown",
"type": "blocked",
"status": "5.0.0"
}
SPF et adresses de rebond
Le domaine utilisé pour l’enveloppe doit autoriser les serveurs d’envoi dans SPF. Le domaine visible dans From peut être différent, mais cette séparation doit rester maîtrisée.
Message:
From: [email protected] (header)
Return-Path: [email protected] (envelope)
SPF Check:
Queries: mail-server.com TXT record (not example.com)
Must include sending IP in mail-server.com's SPF
Configuration SPF du domaine de rebond
Publiez un enregistrement SPF qui couvre les plateformes réellement autorisées à envoyer les messages et les retours associés.
bounces.example.com. IN TXT "v=spf1 include:_spf.sendgrid.net ~all"
Bonnes pratiques pour les adresses de rebond
Une adresse de rebond utile doit être dédiée, surveillée, protégée contre la falsification et reliée à une procédure de nettoyage.
Utiliser une adresse de rebond dédiée
Séparez les rebonds des réponses humaines et donnez à l’équipe un accès contrôlé aux rapports.
# Bad
Return-Path: [email protected]
# Good
Return-Path: [email protected]
Surveiller les taux de rebond
Suivez les taux par domaine, campagne et type d’erreur. Un taux durablement élevé signale souvent une liste vieillissante, une mauvaise collecte ou un problème de réputation.
| Taux de rebond | Évaluation | Action |
|---|---|---|
| < 2 % | Sain | Poursuivre la surveillance |
| 2–5 % | Préoccupant | Auditer la qualité de la liste |
| 5–10 % | Faible | Nettoyer immédiatement la liste |
| > 10 % | Critique | Délivrabilité en danger |
Mettre en œuvre le traitement des rebonds
Automatisez la classification, la mise en quarantaine et la suppression des adresses définitivement invalides.
-- Mark emails with hard bounces
UPDATE mailing_list
SET status = 'bounced', bounce_count = bounce_count + 1
WHERE email IN (SELECT email FROM recent_hard_bounces);
-- Remove after 3 hard bounces
DELETE FROM mailing_list
WHERE bounce_count >= 3;
Séparer les rebonds transactionnels et marketing
Conservez des flux et des indicateurs distincts pour les confirmations de commande, les reçus et les campagnes promotionnelles.
[email protected] # Order confirmations, receipts
[email protected] # Newsletters, campaigns
Configurer l’automatisation du traitement des rebonds
Planifiez la collecte, les nouvelles tentatives et les alertes. Enregistrez chaque décision pour pouvoir l’expliquer et la corriger.
#!/bin/bash
# Process bounces every hour
# Fetch bounces from IMAP
fetchmail -c /etc/fetchmailrc
# Parse and update database
/usr/local/bin/process-bounces.py
# Clean up processed bounces older than 30 days
find /var/mail/bounces -mtime +30 -delete
Sécurité de la rétrodiffusion et des rebonds
La rétrodiffusion survient lorsqu’un serveur accepte un message dont l’adresse From a été falsifiée, puis envoie le rebond à une victime qui n’a jamais envoyé ce message.
Problème de rétrodiffusion
Réduisez la rétrodiffusion en rejetant les destinataires inconnus pendant SMTP et en validant les domaines et les politiques d’authentification.
1. Spammer sends email with forged From
2. Your server accepts it
3. Your server realizes it's spam/invalid
4. Your server bounces to forged From address
5. Innocent party receives bounce (backscatter)
# Postfix: Reject unknown users at SMTP time
smtpd_recipient_restrictions = reject_unauth_destination
local_recipient_maps = hash:/etc/postfix/local_recipients
Falsification d’adresse de rebond
Un attaquant peut falsifier l’adresse d’enveloppe pour masquer l’origine d’un message. Vérifiez SPF, DKIM, DMARC et les journaux d’envoi.
Scénarios courants de rebond
Les symptômes indiquent souvent si le problème vient de la liste, de la collecte des retours, de la réputation ou du traitement automatisé.
Scénario 1 : tous les courriels rebondissent
Vérifiez le domaine d’envoi, la résolution MX, les politiques SPF/DKIM/DMARC, la réputation et la réponse SMTP du destinataire.
Scénario 2 : les rebonds ne sont pas reçus
Contrôlez le Return-Path, la boîte de collecte, les règles de transfert, le domaine SPF et les journaux du serveur.
Scénario 3 : taux élevé de rebonds temporaires
Ralentissez les nouvelles tentatives, examinez les codes SMTP et vérifiez si le fournisseur distant applique une limitation.
Scénario 4 : boucles de rebond
Recherchez des règles qui renvoient automatiquement les rapports vers une autre adresse. Ajoutez une limite de sauts et rendez la chaîne explicite.
Tester le traitement des rebonds
Envoyez des tests contrôlés vers une adresse invalide, une boîte pleine simulée et un domaine distant. Vérifiez le classement, le délai et l’absence de boucle.
# Test bounce to invalid address
swaks --to [email protected] \
--from [email protected] \
--server mx.test-domain.com
# Check if bounce arrives at [email protected]
dig bounces.example.com TXT
# Should show SPF record with authorized senders