Logo outils mail

🛠️ Guide technique

ézéo Outil proposé par la scop ézéo, qui accompagne entreprises, associations et structures de l’ESS dans l’adoption d’outils numériques libres, notamment autour de Nextcloud, en mettant l’accent sur la formation et l’appropriation par les équipes.

Comment identifier l'hébergeur mail d'un domaine à partir de ses enregistrements DNS ?
Ce guide détaille la méthode et les commandes pour le faire vous-même.

📬 Étape 1 : Les enregistrements MX

L'enregistrement MX (Mail Exchanger) indique quel serveur est responsable de la réception des emails pour un domaine. C'est le point de départ de toute analyse.

Chaque enregistrement MX contient une priorité (plus le chiffre est bas, plus le serveur est prioritaire) et un nom d'hôte. C'est ce nom d'hôte qui donne souvent le premier indice sur l'hébergeur.

🐧 Linux / macOS 🪟 Windows
$ dig MX exemple.fr +short

# Résultat :
1 aspmx.l.google.com.
5 alt1.aspmx.l.google.com.
10 alt2.aspmx.l.google.com.
C:\> nslookup -type=MX exemple.fr

; Résultat :
exemple.fr MX preference = 1, mail exchanger = aspmx.l.google.com
exemple.fr MX preference = 5, mail exchanger = alt1.aspmx.l.google.com
Pourquoi le MX ? Le nom du serveur MX contient presque toujours une signature de l'hébergeur. Si vous voyez google.com, outlook.com, ovh.net ou infomaniak.ch dans le nom, l'identification est immédiate.

On analyse le MX de plus haute priorité (chiffre le plus bas). L'outil compare le nom d'hôte avec une base de mots-clés associés à des hébergeurs connus.

Limite : Si un service anti-spam (Mailinblack, Altospam, Proofpoint…) est en frontal, le MX pointe vers l'anti-spam et non vers l'hébergeur réel. C'est là qu'intervient l'analyse SPF.

🛡️ Étape 2 : L'enregistrement SPF

Le SPF (Sender Policy Framework) est un enregistrement TXT qui liste les serveurs autorisés à envoyer des emails pour un domaine. C'est notre meilleur allié quand un anti-spam masque le MX.

🐧 Linux / macOS 🪟 Windows
$ dig TXT exemple.fr +short | grep spf

# Résultat :
"v=spf1 include:_spf.google.com include:spf.mailinblack.com ~all"
C:\> nslookup -type=TXT exemple.fr

; Chercher la ligne commençant par v=spf1
"v=spf1 include:_spf.google.com include:spf.mailinblack.com ~all"
Pourquoi le SPF ? Même si le MX pointe vers un anti-spam, le SPF doit lister l'hébergeur mail réel pour que les emails sortants soient authentifiés. Les directives include: pointent vers les domaines SPF des services utilisés. C'est un indicateur fiable car l'hébergeur mail doit y figurer pour que l'envoi fonctionne.

L'analyse consiste à :

1. Extraire toutes les directives include: et redirect= du SPF.
2. Filtrer les services qui ne sont pas des hébergeurs mail : outils marketing (Mailchimp, Sendinblue…), ERP/CRM (Salesforce, HubSpot…), et les anti-spam eux-mêmes.
3. Comparer les includes restants avec la base de mots-clés d'hébergeurs.

Dans l'exemple ci-dessus, _spf.google.com identifie Google Workspace comme hébergeur, et spf.mailinblack.com est filtré comme anti-spam.

Cas problématique : Si le SPF contient plusieurs hébergeurs mail (par exemple _spf.google.com + spf.protection.outlook.com), c'est souvent le signe d'une migration en cours ou d'un SPF mal nettoyé. C'est là qu'on passe à l'Autodiscover pour trancher.

🔄 Étape 3 : Autodiscover / Autoconfiguration

Autodiscover est un mécanisme utilisé par les clients mail (Thunderbird, Outlook,…) pour configurer automatiquement les paramètres de connexion. Il pointe vers l'hébergeur mail actuellement utilisé.

On vérifie deux types d'enregistrements :

a) Le CNAME autodiscover.domaine.fr

🐧 Linux / macOS 🪟 Windows
$ dig CNAME autodiscover.exemple.fr +short

# Résultat :
autodiscover.outlook.com.
C:\> nslookup -type=CNAME autodiscover.exemple.fr

; Résultat :
autodiscover.exemple.fr canonical name = autodiscover.outlook.com

b) L'enregistrement SRV _autodiscover._tcp.domaine.fr

🐧 Linux / macOS 🪟 Windows
$ dig SRV _autodiscover._tcp.exemple.fr +short

# Résultat :
0 0 443 mail.infomaniak.com.
C:\> nslookup -type=SRV _autodiscover._tcp.exemple.fr

; Résultat :
_autodiscover._tcp.exemple.fr SRV service location:
  priority = 0, weight = 0, port = 443, target = mail.infomaniak.com
Pourquoi l'Autodiscover ? Contrairement au SPF qui peut contenir des traces d'anciens hébergeurs, l'Autodiscover pointe presque toujours vers le fournisseur actuellement en service. C'est un très bon arbitre quand le SPF est ambigu. Son principal défaut : il n'est pas toujours configuré.

🤝 Étape 4 : La bannière SMTP

En se connectant au port 25 du serveur MX, on récupère sa bannière d'accueil SMTP. Cette bannière peut révéler le logiciel utilisé (Postfix, Exchange, Exim…) ou parfois directement le nom de l'hébergeur.

🐧 Linux / macOS 🪟 Windows
# Avec telnet
$ telnet aspmx.l.google.com 25
220 mx.google.com ESMTP gsmtp

# Ou avec openssl (si le port 25 est filtré)
$ echo "QUIT" | nc -w 3 aspmx.l.google.com 25
220 mx.google.com ESMTP gsmtp
:: Avec telnet (activer la fonctionnalité Windows d'abord)
C:\> telnet aspmx.l.google.com 25
220 mx.google.com ESMTP gsmtp

:: Avec PowerShell
PS> (New-Object Net.Sockets.TcpClient("aspmx.l.google.com",25)).GetStream() | ...
220 mx.google.com ESMTP gsmtp
Attention : Beaucoup de FAI et de réseaux d'entreprise bloquent le port sortant 25. Cette étape peut ne pas fonctionner depuis tous les environnements.

🏠 Étape 5 : Détection de l'auto-hébergement

Si aucun hébergeur connu n'est identifié, on vérifie si le domaine du serveur MX correspond au domaine recherché.

# Domaine recherché : monentreprise.fr
# MX trouvé :
10 mail.monentreprise.fr.

# → Le MX contient le domaine recherché
# → Probable auto-hébergement
Logique : Si monentreprise.fr a un MX qui pointe vers mail.monentreprise.fr, smtp.monentreprise.fr ou tout sous-domaine de monentreprise.fr, c'est que probalement l'organisation gère elle-même son infrastructure mail.

🌍 Étape 6 : Géolocalisation du serveur

Une fois le serveur MX identifié, on résout son adresse IP puis on interroge une base de géolocalisation pour déterminer le pays d'hébergement. Service : db-ip.com

🐧 Linux / macOS 🪟 Windows
# Résoudre l'IP
$ dig A aspmx.l.google.com +short
142.250.153.26

# Géolocaliser (via API publique)
$ curl -s "http://api.db-ip.com/v2/free/142.250.153.26/countryName"
United States
:: Résoudre l'IP
C:\> nslookup aspmx.l.google.com
Address: 142.250.153.26

:: Géolocaliser (PowerShell)
PS> (Invoke-WebRequest "http://api.db-ip.com/v2/free/142.250.153.26/countryName").Content
United States
Fiabilité : La géolocalisation IP donne le pays du datacenter, pas nécessairement le pays de l'entreprise hébergeuse. Un hébergeur français peut utiliser un datacenter aux Pays-Bas, par exemple. Si un anti-spam est en frontal, la localisation sera celle de l'anti-spam, pas de l'hébergeur mail final.

📝 Récapitulatif des enregistrements DNS utilisés

Enregistrement Rôle Fiabilité
MX Identifie le serveur qui reçoit les emails Haute sauf si anti-spam en frontal
TXT (SPF) Liste les serveurs autorisés à envoyer des emails Haute mais peut contenir des restes d'ancienne config
CNAME / SRV
(Autodiscover)
Pointe vers le fournisseur mail pour la configuration auto Très haute mais pas toujours présent
Bannière SMTP Identifie le logiciel serveur, parfois l'hébergeur Variable dépend de la configuration du serveur

⚠️ Limites connues

Cette méthode fonctionne dans la majorité des cas, mais certaines configurations restent difficiles à analyser :

Le code source de cet outil est disponible sur GitLab. Contributions bienvenues !

Un outil proposé par la scop ézéo coop

Accompagnement et formation au numérique libre.