// comment corriger
Erreur « 554 5.4.6 Hop count exceeded - possible mail loop » : la corriger
Email refusé avec 5.4.6 ou 5.4.14 hop count exceeded ? Le message tourne en rond entre plusieurs serveurs. Trouvez la boucle et cassez-la.
Ce que ça veut dire
Chaque fois qu'un email passe par un serveur, ce serveur ajoute une ligne Received aux en-têtes. C'est un « saut » (hop). Si un message accumule trop de sauts, les serveurs considèrent qu'il tourne en rond (une boucle de messagerie, ou mail loop) et l'arrêtent avec un message d'erreur. Il ressemble généralement à ceci :
554 5.4.6 Hop count exceeded - possible mail loop
Microsoft 365 utilise 554 5.4.14 Hop count exceeded - possible mail loop, parfois suivi de ATTR1 ou ATTR34. Selon Microsoft, 5.4.14 vient d'Exchange Online et 5.4.6 généralement d'un serveur Exchange local. Postfix utilise aussi le statut 5.4.6, par exemple avec le texte mail for yourdomain.com loops back to myself ou mail forwarding loop for user@yourdomain.com.
Pourquoi cela arrive
- Des transferts en cercle. L'adresse A transfère vers B, et B renvoie vers A (ou via C). Fréquent après avoir configuré un transfert à la fois sur l'ancienne et sur la nouvelle boîte.
- Le MX pointe vers un serveur qui ne connaît pas le domaine. Le serveur reçoit l'email, ne se considère pas comme la destination finale, consulte le MX et l'envoie… à lui-même. Sur Postfix, cela arrive quand le domaine manque dans
mydestinationou dans les réglages de domaines virtuels. - Deux systèmes pensent chacun que l'autre héberge la boîte. Typique d'un Exchange hybride ou d'une migration : le serveur local envoie vers le cloud, le cloud renvoie vers le serveur local.
- Connecteurs ou passerelles mal réglés. Une passerelle de filtrage envoie les emails vers Microsoft 365, et un connecteur ou une règle les renvoie vers la passerelle.
- Domaine accepté en mode relais. Dans Exchange Online, un domaine réglé en « internal relay » transfère les destinataires inconnus vers un autre serveur, qui les renvoie.
- Des réponses automatiques et règles de transfert qui se répondent entre elles.
Comment vérifier
- Ouvrez le message d'erreur et lisez les en-têtes du message renvoyé. Lisez les lignes
Receivedde bas en haut. Vous verrez les mêmes deux ou trois noms de serveurs se répéter : ce sont eux qui forment la boucle. Notre guide pour lire les en-têtes d'un email explique chaque ligne. - Vérifiez les enregistrements MX du domaine destinataire avec le scanner de domaine, ou avec
dig MX yourdomain.com +short. Ils doivent pointer vers le serveur ou le service qui héberge réellement les boîtes. Voir aussi un enregistrement MX qui pointe vers un CNAME ou une IP. - Sur Postfix, vérifiez que le domaine est déclaré comme local ou virtuel :
postconf mydestination virtual_mailbox_domains relay_domains postconf -n | grep -i transport
- Sur Microsoft 365, dans Exchange Online PowerShell :
Get-AcceptedDomain | Format-Table Name,DomainType Get-Mailbox user@yourdomain.com | Format-List ForwardingAddress,ForwardingSmtpAddress Get-InboxRule -Mailbox user@yourdomain.com Get-InboundConnector; Get-OutboundConnector
Le suivi des messages (message trace) dans le Centre d'administration Exchange montre aussi le chemin suivi par un message.
Comment corriger
- Cassez les cercles de transfert. Ne transférez que dans un seul sens, et retirez le transfert de l'ancienne boîte une fois la migration terminée.
- Désignez un seul serveur comme responsable. Sur Postfix, ajoutez le domaine à
mydestination(utilisateurs locaux) ou àvirtual_mailbox_domains(utilisateurs virtuels), jamais aux deux, puis lancezsystemctl reload postfix. Dans Exchange Online, réglez le domaine sur Authoritative, sauf si certaines boîtes sont vraiment hébergées ailleurs. - Corrigez le MX pour qu'il pointe vers le système qui héberge les boîtes. Après un changement de fournisseur, mettez-le à jour chez votre hébergeur DNS et supprimez les anciennes entrées.
- Corrigez le routage hybride. Assurez-vous que chaque boîte n'existe qu'à un seul endroit (une boîte dans le cloud doit être une « remote mailbox » sur le serveur local, pas une seconde boîte), et que les connecteurs n'envoient vers l'autre côté que pour les destinataires qui y sont vraiment.
- Revoyez les passerelles. Si un service de filtrage se trouve devant vos boîtes, le chemin entrant (passerelle → boîte) et le chemin sortant (boîte → passerelle → internet) ne doivent pas se renvoyer le même message.
- Arrêtez les ping-pongs de réponses automatiques avec des règles qui ne répondent pas aux messages automatiques.
Vérifiez que c'est corrigé
Envoyez un nouveau message à l'adresse qui bouclait et vérifiez qu'il arrive avec seulement quelques lignes Received. Si vous avez modifié le DNS, laissez le temps à la propagation. Envoyez ensuite un test depuis ce domaine à l'adresse affichée sur la page d'accueil de Delivmail pour confirmer que les emails sortants et l'authentification fonctionnent toujours après le changement de routage.
Vérifiez que c'est corrigé
Une modification DNS peut prendre de quelques minutes à quelques heures. Ensuite, envoyez un nouvel email de test ou scannez à nouveau votre domaine.
Fiches liées
- Aucun enregistrement SPF sur votre domaineVotre domaine n'indique pas quels serveurs ont le droit d'envoyer des emails en son nom. Ajoutez un enregistrement TXT et les destinataires sauront distinguer vos vrais emails des faux.
- Erreur SPF : trop de requêtes DNS (permerror)Le SPF autorise au maximum 10 requêtes DNS. Au-delà, tout l'enregistrement est cassé et les destinataires le considèrent comme invalide. Voici comment l'alléger.
- Plusieurs enregistrements SPF sur un même domaineUn domaine ne doit avoir qu'un seul enregistrement SPF. Avec deux ou plus, le SPF échoue pour tous vos emails. Fusionnez-les en une seule ligne.
- Échec SPF : le serveur d'envoi n'est pas autoriséVotre domaine a un enregistrement SPF, mais le serveur qui a envoyé votre email n'y figure pas. Trouvez quel service a envoyé l'email et ajoutez-le.
- Aucune signature DKIM sur vos emailsLe DKIM ajoute une signature numérique qui prouve qu'un email vient bien de votre domaine. Activez-le chez votre fournisseur de messagerie et publiez sa clé dans le DNS.