Vous cherchez à exporter toutes ces adresses SMTP depuis Exchange ou Office 365 ? C’est pratique pour les audits, les migrations ou simplement pour identifier les alias de messagerie de chacun. Parfois, la seule piste pour faire du nettoyage ou résoudre un problème est cette longue liste d’adresses SMTP associées aux utilisateurs, contacts ou groupes. Exporter toutes ces informations dans un fichier CSV ? C’est possible avec PowerShell, mais cela peut s’avérer un peu complexe au premier abord, surtout si vous gérez un environnement Exchange local ou des objets Azure AD. Ce guide vous explique la marche à suivre grâce à des commandes et des astuces simples, pour vous éviter de vous retrouver face à une multitude d’adresses e-mail. Vous découvrirez les adresses principales, les alias et comment exporter proprement toutes ces données pour une utilisation ultérieure. Et bien sûr, cette méthode fonctionne aussi bien sur Exchange Server que sur Microsoft 365, car il est essentiel d’adapter la procédure selon votre environnement.
Comment exporter les adresses SMTP depuis Exchange ou Microsoft 365
Connectez-vous à votre environnement Exchange
- Vous pouvez utiliser Exchange Management Shell (EMS) pour Exchange sur site ; vous le trouverez généralement dans votre menu Démarrer sous Exchange Management Shell.
- Ou, pour les configurations cloud, connectez-vous via PowerShell en utilisant le module Exchange Online.
Sur les installations récentes, vous devrez probablement installer le module PowerShell Exchange Online le plus récent. Voici une méthode rapide pour vous connecter à votre locataire :
Connect-ExchangeOnline -UserPrincipalName [email protected]
Conseil : Selon votre environnement, vous devrez peut-être exécuter PowerShell en tant qu’administrateur ou configurer vos stratégies d’exécution Set-ExecutionPolicy RemoteSigned. De plus, en cas de problème de connexion, un redémarrage rapide de PowerShell ou une nouvelle authentification peuvent parfois résoudre le problème.
Afficher les adresses e-mail d’une seule boîte aux lettres
Cette commande récupère toutes les adresses SMTP principales et secondaires d’un utilisateur spécifique :
Get-Mailbox testmax | Select-Object DisplayName, PrimarySmtpAddress, EmailAddresses | Format-List
Cela vous permet de vérifier les informations disponibles. Les majuscules SMTPindiquent l’adresse principale, et les minuscules, smtples alias ou adresses supplémentaires. Il arrive parfois de rencontrer d’autres types d’adresses, comme les adresses X400 ou les adresses personnalisées ; cette commande offre donc un bon point de départ pour identifier les adresses attribuées.
Extraire toutes les adresses SMTP, y compris les alias
Étant donné qu’une boîte aux lettres peut contenir plusieurs adresses SMTP EmailAddresses, cette commande les filtre explicitement :
Get-Mailbox testmax | Select-Object DisplayName, PrimarySmtpAddress, @{ Name="SMTPAliases"; Expression={ ($_. EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object { $_ -replace "^smtp:", "" }) -join ", " } }
Vous obtiendrez ainsi la liste de tous les alias SMTP, séparés par des virgules. Si vous souhaitez effectuer cette opération pour toutes les boîtes aux lettres des utilisateurs et l’enregistrer au format CSV, voici la procédure complète :
Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySmtpAddress, @{ Name="SMTPAliases"; Expression={ ($_. EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object { $_ -replace "^smtp:", "" }) -join ", " } } | Export-Csv "C:\\PS\\List-All-SMTP-Addresses.csv" -NoTypeInformation -Encoding UTF8
Cette commande génère une liste propre de toutes les boîtes aux lettres des utilisateurs. Vous pouvez modifier le chemin d’accès à votre guise. Même sur certaines configurations, il est possible que la première exécution de cette commande génère des erreurs ou des données incomplètes ; un redémarrage ou une reconnexion rapide peut parfois résoudre le problème. Ne vous découragez donc pas si le résultat est instable au premier essai.
Récupération des adresses SMTP de tous les objets dans Active Directory ou Azure AD
Si vous avez besoin de plus que de simples comptes d’utilisateurs, comme des contacts, des groupes ou des objets compatibles avec la messagerie, utilisez la cmdlet Get-Recipient. Elle couvre tous les types d’objets de votre environnement Exchange.
Get-Recipient -ResultSize Unlimited | Select-Object DisplayName, RecipientType, PrimarySmtpAddress, @{ Name="SMTPAliases"; Expression={ ($_. EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object { $_ -replace "^smtp:", "" }) -join ", " } }
Vous souhaitez uniquement, par exemple, les groupes de distribution ? Il suffit d’ajouter le -RecipientTypeparamètre comme ceci :
Get-Recipient -ResultSize Unlimited -RecipientType DistributionGroup |...
Vous pouvez ainsi filtrer les informations superflues et vous concentrer sur des types d’objets spécifiques, ce qui est utile si vous essayez de nettoyer ou d’auditer les adresses électroniques dans l’ensemble de votre environnement Microsoft.
Recherche d’adresses SMTP en double
Si vous craignez que plusieurs objets partagent la même adresse électronique, cette commande liste tous les serveurs SMTP de chaque destinataire — idéal pour résoudre les conflits ou les doublons d’adresses :
Get-Recipient -ResultSize Unlimited | Where-Object { $_. EmailAddresses -like "*[email protected]*" }
Pas idéal pour les grands locataires, mais suffisant pour des vérifications rapides. Si vous souhaitez une liste brute de tous les serveurs SMTP, cet outil vous fournira les adresses de manière uniforme, sans doublons.
Get-Recipient | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object { $_ -replace "^smtp:", "" } | Sort-Object -Unique
Idéal pour avoir un aperçu rapide de tous les serveurs SMTP uniques utilisés dans votre organisation. Parfois, le simple fait de savoir quels serveurs sont déjà utilisés suffit à résoudre les conflits de messagerie ou à préparer une migration.
Résumé
- Utilisez des commandes PowerShell comme `ls`
Get-Mailboxet `ls`Get-Recipientpour lister les adresses e-mail. - Filtrez et nettoyez les adresses e-mail pour distinguer clairement l’adresse principale et les alias.
- Exportez toutes les données au format CSV pour faciliter la gestion ou les audits.
- Assurez-vous de vous connecter au bon environnement (sur site ou dans le cloud) avant d’exécuter des commandes.
- Soyez patient : il faut parfois s’y reprendre à plusieurs fois ou redémarrer rapidement la session pour que les commandes affichent la liste complète.
Conclure
Extraire toutes ces adresses SMTP d’Exchange ou de Microsoft 365 n’est pas sorcier une fois qu’on maîtrise PowerShell. L’apprentissage demande un peu de temps, surtout lorsqu’on travaille avec différents types d’objets et d’environnements, mais les commandes sont assez simples. Le plus important est de savoir quelles cmdlets utiliser et comment filtrer les résultats pour plus de clarté. Grâce à cela, vous devriez pouvoir récupérer, afficher et exporter toutes les adresses e-mail associées aux utilisateurs, contacts et groupes sans trop de difficultés. De quoi faire gagner un temps précieux à ceux qui effectuent un nettoyage ou préparent une migration. Bonne chance ! Et surtout, n’oubliez pas de tester dans un environnement hors production si vous développez des scripts à grande échelle. Mieux vaut prévenir que guérir.