Obtenga todas las direcciones SMTP (correo electrónico) utilizando PowerShell en Exchange
De vez en cuando, es posible que necesites exportar la lista completa de direcciones de correo electrónico en tu organización de Exchange. En este artículo mostraremos cómo obtener y exportar todas las direcciones SMTP asignadas a un archivo CSV en Exchange Server o Microsoft 365 (Exchange Online) usando PowerShell.
Conéctese a su organización de Exchange:
Puede usar el módulo Exchange Management Shell (EMS) para administrar Exchange Server local o puede conectarse a Exchange de forma remota desde una consola PowerShell normal;
Utilice el módulo Exchange Online PowerShell (EXO) para conectar el inquilino de Microsoft 365.
Puede utilizar la autenticación basada en certificados para iniciar sesión en Exchange Online desde PowerShell.
Para ver todas las direcciones SMTP principales y adicionales para un buzón de Exchange específico, ejecute este comando:
Get-Mailbox testmax |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses|flEste
SMTPLa dirección en mayúsculas contiene la dirección de correo electrónico principal.
Las minúsculas
smtpLos valores son las direcciones de correo electrónico secundarias (alias).
El atributo proxyAddresses se utiliza para configurar la dirección de entrega de correo electrónico en Active Directory local.
Como puede ver, a un usuario se le asignan varias direcciones SMTP adicionales, que se almacenan en el atributo de cadena EmailAddresses. Puede haber otros tipos de direcciones en este atributo, por lo que para obtener una lista de todas las direcciones SMTP de un buzón, ejecute el siguiente comando:
Get-Mailbox testmax | Select-Object DisplayName,PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}El siguiente comando muestra todas las direcciones principales y alias de todos los buzones de usuario y buzones compartidos en Exchange y exporta los resultados a un archivo CSV:
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 UTF8El cmdlet Get-Mailbox muestra solo información sobre usuarios y buzones de correo compartidos.
En Active Directory (o Azure AD), puede haber otros tipos de objetos con direcciones SMTP asignadas (objetos habilitados para correo): grupos de distribución, contactos y grupos de Microsoft 365 (Grupos Unificados en Entra ID). Utilice el cmdlet Get-Recipient para enumerar las direcciones SMTP de todos los objetos en una organización/inquilino de Exchange:
Get-Recipient -ResultSize Unlimited | Select-Object DisplayName, RecipientType, PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}En este caso, tenemos una lista de las direcciones SMTP de todo tipo de objetos de Exchange. Para exportar solo direcciones SMTP de un tipo de objeto específico, agregue el siguiente parámetro al primer cmdlet
Get-Recipient -ResultSize Unlimited -RecipientType your_object_type | …Posibles tipos de objetos de Exchange:
Grupo de distribución dinámica
CorreoContacto
Grupo de correo no universal
Grupo de distribución universal de correo
Grupo de seguridad universal de correo
Usuario de correo
-
Carpeta pública
Buzón de usuario
Si necesita encontrar objetos de Exchange con la misma dirección SMTP del destinatario (duplicada), ejecute:
Get-Recipient -resultsize unlimited | where {$_.EmailAddresses -like "*[email *"}También puede obtener una lista plana de direcciones SMTP en Exchange:
Get-Recipient | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object { $_.Replace("smtp:", "").Replace("SMTP:", "") }También se generaron direcciones SMTP únicas para el canal Microsoft Teams.
Vea la cantidad de direcciones SMTP únicas en su organización de Exchange:
Get-Recipient -ResultSize Unlimited | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" }| measure-object

