Búsqueda de sitios web

Cómo agregar direcciones de correo electrónico con PowerShell


Puede agregar un correo electrónico adicional a un solo buzón o a todos los buzones de su organización y conservar las direcciones de correo electrónico existentes. También es posible agregar una dirección de correo electrónico que reemplazará una dirección de correo electrónico existente. En este artículo, aprenderá cómo agregar direcciones de correo electrónico con PowerShell.

Administrar direcciones de correo electrónico en Exchange Online

Para administrar direcciones de correo electrónico en su organización de Microsoft 365, utilice los siguientes artículos:

  • Agregar direcciones de correo electrónico con PowerShell (este artículo)
  • Eliminar direcciones de correo electrónico con PowerShell
  • Exportar direcciones de correo electrónico con PowerShell

Direcciones de correo electrónico primarias y secundarias

Cada destinatario puede tener varias direcciones de correo electrónico, pero siempre debe tener una dirección SMTP principal, que es la predeterminada. Todas las demás direcciones de correo electrónico son opcionales, como por ejemplo:

  • smtp: dirección de correo electrónico secundaria (alias)
  • Proxy: dirección de correo electrónico adicional
  • SIP: Dirección de correo electrónico adicional
  • x500: Dirección de correo electrónico adicional

Conéctese a Exchange Online PowerShell

Para ejecutar los comandos de PowerShell especificados en el artículo actual, debe conectarse a Exchange Online PowerShell.

Connect-ExchangeOnline

Agregar dirección de correo electrónico SMTP principal a un buzón único

Para agregar o reemplazar una dirección de correo electrónico existente, usaremos el cmdlet Set-Mailbox PowerShell. Le mostraremos diferentes métodos para agregar una dirección de correo electrónico principal a un único buzón con PowerShell. También puede cambiar la dirección SMTP principal de Microsoft 365 en el centro de administración de Microsoft 365 y PowerShell.

Método 1. Agregar la dirección SMTP principal y eliminar otras direcciones de correo electrónico

Usaremos el parámetro -EmailAddresses en el comando de PowerShell para reemplazar la dirección de correo electrónico SMTP principal.

Ejecute el siguiente comando de PowerShell para agregar una dirección de correo electrónico SMTP principal al buzón de un usuario y eliminar las otras direcciones de correo electrónico existentes.

Set-Mailbox "Brenda.Smith@m365info.com" -EmailAddresses "SMTP:BrendaNewEmail@m365info.com"

Los resultados son los siguientes:

  • La nueva dirección de correo electrónico (BrendaNewEmail@m365info.com) reemplaza la dirección de correo electrónico principal actual.
  • La antigua dirección de correo electrónico principal SMTP ahora se guarda como dirección de correo electrónico smtp secundaria.
  • Se han eliminado todas las demás direcciones de correo electrónico adicionales, como alias, proxy, .onmicrosoft.com y direcciones SIP.
  • El UserPrincipalName seguirá siendo el mismo (Brenda.Smith@m365info.com).

Después de ejecutar el comando PowerShell, recibirá la siguiente advertencia que puede ignorar.

ADVERTENCIA: La dirección de proxy “Brenda.Smith@m365info.com” se utiliza como WindowsLiveId. Por lo tanto, no se puede eliminar de la lista de direcciones de correo electrónico. Para eliminarlo, primero cambie el WindowsLiveId.

Ejecute el siguiente comando de PowerShell para verificar los resultados.

Get-Mailbox "Brenda.Smith@m365info.com" | Format-List Alias, PrimarySmtpAddress, EmailAddresses

El resultado de Powershell muestra estos resultados.

Alias              : Brenda.Smith
PrimarySmtpAddress : BrendaNewEmail@m365info.com
EmailAddresses     : {smtp:Brenda.Smith@m365info.com,
                     SMTP:BrendaNewEmail@m365info.com}

Método 2. Agregar la dirección SMTP principal y conservar todas las direcciones de correo electrónico existentes

Agregaremos una dirección de correo electrónico principal que reemplazará a la anterior. Para reemplazar la dirección SMTP principal, utilice el parámetro -WindowsEmailAddress.

Ejecute el siguiente comando de PowerShell para reemplazar la dirección SMTP principal sin eliminar todas las demás direcciones de correo electrónico.

Set-Mailbox "Brenda.Smith@m365info.com" -WindowsEmailAddress "BrendaNewEmail2@m365info.com"

Los resultados son los siguientes:

  • La nueva dirección de correo electrónico (BrendaNewEmail2@m365info.com) reemplaza la dirección de correo electrónico principal actual.
  • La antigua dirección de correo electrónico principal SMTP ahora se guarda como dirección de correo electrónico smtp secundaria.
  • Todas las demás direcciones de correo electrónico adicionales, como alias, proxy, .onmicrosoft.com y direcciones SIP, permanecen intactas.

Agregue una dirección de correo electrónico SMTP secundaria a un buzón único

Existen diferentes métodos para agregar direcciones de correo electrónico secundarias. Utilice @{add en el comando de PowerShell para agregar direcciones de correo electrónico adicionales.

El SMTP principal y todas las demás direcciones de correo electrónico existentes permanecerán intactas para el buzón.

Método 1

Ejecute el siguiente comando de PowerShell para agregar una dirección de correo electrónico smtp a un único buzón.

Set-Mailbox "Brenda.Smith@m365info.com" -EmailAddresses @{add = "BrendaNewEmail1@m365info.com" }

Método 2

Ejecute el siguiente comando de PowerShell para agregar varias direcciones de correo electrónico smtp a un solo buzón.

Set-Mailbox "Brenda.Smith@m365info.com" -EmailAddresses @{add = "BrendaNewEmail2@m365info.com", "BrendaNewEmail3@m365info.com" }

Método 3

Puede reemplazar agregar con el símbolo (+) pero enciérrelo entre comillas dobles como se muestra en el siguiente comando de PowerShell.

Set-Mailbox "Brenda.Smith@m365info.com" -EmailAddresses @{"+" = "BrendaNewEmail4@m365info.com" }

Agregue direcciones de correo electrónico primarias y secundarias a un único buzón

Puede agregar una nueva dirección SMTP principal y direcciones SMTP secundarias para los usuarios, pero eliminará todas las direcciones de correo electrónico existentes.

Método 1. Agregar una dirección de correo electrónico secundaria y eliminar las direcciones de correo electrónico existentes

Cuando agrega una nueva dirección SIP, se eliminarán todas las direcciones de correo electrónico existentes para el buzón único, pero se mantendrá la dirección SMTP principal.

Ejecute el comando PowerShell para agregar una dirección de correo electrónico SIP a un único buzón.

Set-Mailbox "Brenda.Smith@m365info.com" -EmailAddresses "SIP:Brenda.Smith2@m365info.com"

Los resultados son los siguientes:

  • Agrega la nueva dirección de correo electrónico SIP (BrendaSmith2@m365info.com).
  • Todas las demás direcciones de correo electrónico adicionales, como alias, proxy, .onmicrosoft.com y direcciones SIP, se han eliminado.
  • La dirección de correo electrónico SMTP principal seguirá siendo la misma.

Después de ejecutar el comando PowerShell, recibirá la siguiente advertencia que puede ignorar.

ADVERTENCIA: La dirección de proxy “Brenda.Smith@m365info.com” se utiliza como WindowsLiveId. Por lo tanto, no se puede eliminar de la lista de direcciones de correo electrónico. Para eliminarlo, primero cambie el WindowsLiveId.

Método 2. Agregar la dirección SMTP principal y las direcciones de correo electrónico secundarias y eliminar las direcciones de correo electrónico existentes

Puede reemplazar la dirección de correo electrónico principal y agregar nuevas direcciones de alias, lo que eliminará todas las direcciones de correo electrónico existentes. Cuando cambie la dirección principal, la dirección SMTP anterior no se eliminará sino que se mantendrá como dirección SMTP secundaria.

En nuestro ejemplo, queremos agregar estas nuevas direcciones de correo electrónico:

  • BrendaNewEmail@m365info.com (nueva dirección de correo electrónico principal)
  • BrendaNew2@m365info.com
  • BrendaNew3@m365info.com

El comando de PowerShell Set-Mailbox agregará la primera dirección de correo electrónico como dirección de correo electrónico principal y las otras direcciones de correo electrónico como correo electrónico secundario (alias). dirección si no nombra ninguna de las direcciones.

Nota: Para agregar y reemplazar la dirección SMTP principal, es mejor agregar el sufijo SMTP en el comando de PowerShell.

Ejecute el siguiente comando de PowerShell para agregar dos direcciones de correo electrónico.

Set-Mailbox "Brenda.Smith@m365info.com" -EmailAddresses "SMTP:BrendaNewEmail@m365info.com", "BrendaNew2@m365info.com", "BrendaNew3@m365info.com"

Los resultados son los siguientes:

  • La primera dirección de correo electrónico (BrendaNewEmail@m365info.com) reemplaza la dirección de correo electrónico principal actual.
  • Agregará la segunda y tercera dirección de correo electrónico (BrendaNew2@m365info.com, BrendaNew3@m365info.com) como direcciones secundarias (smtp).
  • La antigua dirección principal cambia a una dirección smtp secundaria.
  • Todas las demás direcciones de correo electrónico adicionales, como alias, proxy, .onmicrosoft.com y direcciones SIP, se han eliminado (eliminado).
  • Después de ejecutar el comando, recibirá la siguiente advertencia.

ADVERTENCIA: La dirección de proxy “Brenda.Smith@m365info.com” se utiliza como WindowsLiveId. Por lo tanto, no se puede eliminar de la lista de direcciones de correo electrónico. Para eliminarlo, primero cambie el WindowsLiveId.

Agregue una dirección SMTP secundaria con un nuevo sufijo de nombre de dominio para todos los buzones

Usaremos la declaración ForEach en PowerShell para agregar una dirección de correo electrónico adicional para todos los buzones. El script de PowerShell recopilará todas las direcciones de correo electrónico existentes y agregará la nueva dirección de correo electrónico con el nuevo sufijo de nombre de dominio como dirección de correo electrónico adicional. No eliminará las direcciones de correo electrónico existentes.

  • Nuestra empresa utiliza el nombre de dominio público m365info.com
  • Nuestra empresa compró un nombre de dominio adicional m365pilot.com

El script de PowerShell hará lo siguiente:

  • Agregue una dirección SMTP secundaria con el nuevo sufijo de nombre de dominio m365pilot.com a todos los buzones de correo de Exchange Online.
  • La nueva dirección de correo electrónico no reemplazará la dirección de correo electrónico principal existente, pero se agregará como una dirección de correo electrónico adicional.
  • Mantendrá todas las demás direcciones de correo electrónico existentes, como direcciones de correo electrónico proxy, SIP o x500 de los destinatarios.

En nuestro ejemplo, las direcciones de correo electrónico utilizan el dominio (m365info.com), y lo cambiaremos con otro dominio nuevo (m365pilot.com) para todos los buzones.

  1. Escriba el nuevo nombre de dominio en la línea 3
  2. Ejecute el siguiente script de PowerShell
$Mailboxes = Get-Mailbox -Filter { IsDirSynced -eq $false } -ResultSize Unlimited
foreach ($Mailbox in $Mailboxes) {
    $NewAddress = $Mailbox.Alias + "@m365pilot.com"
    if ($Mailbox.EmailAddresses -notcontains "smtp:$NewAddress") {
        $Mailbox.EmailAddresses += $NewAddress
        Set-Mailbox -Identity $Mailbox.Alias -EmailAddresses $Mailbox.EmailAddresses
        Write-Host "Added secondary smtp address $NewAddress to $($Mailbox.UserPrincipalName)" -ForegroundColor Green
    }
    else {
        Write-Host "Secondary smtp address $NewAddress already exists for $($Mailbox.UserPrincipalName)" -ForegroundColor Yellow
    }
}

Los resultados de salida de PowerShell.

Added secondary smtp address Amanda.Hansen@m365pilot.com to Amanda.Hansen@m365info.com
Added secondary smtp address Brenda.Smith@m365pilot.com to Brenda.Smith@m365info.com
Added secondary smtp address Carl.Hawk@m365pilot.com to Carl.Hawk@m365info.com
Secondary smtp address Diana.Baker@m365pilot.com already exists for Diana.Baker@m365info.com
Secondary smtp address Frank.Olsen@m365pilot.com already exists for Frank.Olsen@m365info.com
Added secondary smtp address Julia.Wood@m365pilot.com to Julia.Wood@m365info.com
Secondary smtp address Stephen.Hunter@m365pilot.com already exists for Stephen.Hunter@m365info.com
Secondary smtp address Test.Sharedmailbox@m365pilot.com already exists for Test.Sharedmailbox@m365info.com

Agregue la dirección SMTP principal con un nuevo sufijo de nombre de dominio para todos los buzones

Reemplazaremos la dirección principal existente con una nueva dirección SMTP principal que utiliza un sufijo de nombre de dominio diferente sin eliminar otras direcciones de correo electrónico.

  • Nuestra empresa utiliza el nombre de dominio público m365info.com
  • Nuestra empresa compró un nombre de dominio adicional m365pilot.com

El script de PowerShell hará lo siguiente:

  • Reemplace la dirección de correo electrónico principal actual con una nueva dirección de correo electrónico principal que utilice el sufijo de nombre de dominio m365pilot.com.
  • No eliminará la dirección principal anterior, sino que la cambiará a una dirección de correo electrónico de alias (smtp).
  • Todas las demás direcciones de correo electrónico existentes, como Proxy, SIP o direcciones de correo electrónico x500 de los destinatarios, permanecerán.

En nuestro ejemplo, la dirección de correo electrónico principal tiene un dominio (m365info.com) y lo cambiaremos con otro dominio nuevo (m365pilot.com) para todos los buzones. Agregará la nueva dirección de correo electrónico principal y reemplazará la anterior.

  1. Escriba el nuevo nombre de dominio en la línea 3
  2. Ejecute el siguiente script de PowerShell
$Mailboxes = Get-Mailbox -Filter { IsDirSynced -eq $false } -ResultSize Unlimited
foreach ($Mailbox in $Mailboxes) {
    $NewAddress = $Mailbox.Alias + "@m365pilot.com"
    if ($Mailbox.PrimarySmtpAddress -notlike "$NewAddress") {
        Set-Mailbox -Identity $Mailbox.Alias -WindowsEmailAddress $NewAddress
        Write-Host "Changed primary SMTP address $($Mailbox.PrimarySmtpAddress) to $NewAddress" -ForegroundColor Green
    }
    else {
        Write-Host "Primary SMTP address $NewAddress is already set for $($Mailbox.PrimarySmtpAddress)" -ForegroundColor Yellow
    }
}

La salida de PowerShell muestra el siguiente resultado.

Changed primary SMTP address Amanda.Hansen@m365info.com to Amanda.Hansen@m365pilot.com
Primary SMTP address Brenda.Smith@m365pilot.com is already set for Brenda.Smith@m365pilot.com
Changed primary SMTP address Carl.Hawk@m365info.com to Carl.Hawk@m365pilot.com
Changed primary SMTP address Diana.Baker@m365info.com to Diana.Baker@m365pilot.com
Changed primary SMTP address Frank.Olsen@m365info.com to Frank.Olsen@m365pilot.com
Changed primary SMTP address Julia.Wood@m365info.com to Julia.Wood@m365pilot.com
Primary SMTP address Stephen.Hunter@m365pilot.com is already set for Stephen.Hunter@m365pilot.com
Primary SMTP address Test.Sharedmailbox@m365pilot.com is already set for Test.Sharedmailbox@m365pilot.com

Agregue direcciones de correo electrónico primarias y secundarias desde un archivo CSV

En este ejemplo, queremos reemplazar la dirección SMTP principal y agregar direcciones secundarias desde un archivo CSV sin eliminar ningún alias existente para el destinatario.

Siga estos pasos para crear un archivo CSV para reemplazar la dirección SMTP principal y las direcciones de correo electrónico secundarias:

  1. Nombra la primera columna Destinatario y enumera todos los destinatarios debajo de ella.
  2. Asigne a la segunda columna el nombre PrimaryEmail y enumere todas las direcciones de correo electrónico principales.
  3. Asigne a la tercera columna el nombre AliasEmail y enumere todas las direcciones de correo electrónico.
  4. Utilice el carácter de punto y coma (;) para separar las direcciones de correo electrónico en la columna AliasEmail.

  1. Asigne al archivo un nombre Dirección de correo electrónico y guárdelo como un archivo CSV.
  2. Cree una carpeta temp en la unidad (C:) si no tiene una.
  3. Guarde el archivo EmailAddresses.csv en la carpeta temporal
  4. Para asegurarse de que PowerShell pueda leer el archivo, ejecute el cmdlet Import-Csv.
Import-Csv "C:\temp\EmailAddresses.csv"
  1. Especifique el archivo ruta CSV en la línea 1
  2. Ejecute el siguiente script de PowerShell
$Recipients = Import-Csv "C:\temp\EmailAddresses.csv"
foreach ($Mailbox in $Recipients) {
    $PrimaryEmail = $Mailbox.PrimaryEmail
    $AliasEmails = $Mailbox.AliasEmail -split ';'

    # Get current email addresses of the mailbox
    $EXOMailbox = Get-Mailbox -Identity $Mailbox.Recipient

    foreach ($Alias in $AliasEmails) {
        # Check if alias already exists
        if ($EXOMailbox.EmailAddresses -notcontains "smtp:$Alias") {
            Set-Mailbox -Identity $Mailbox.Recipient -EmailAddresses @{add = "smtp:$Alias" } -WarningAction SilentlyContinue
            Write-Host "Adding alias email address '$Alias' to $($Mailbox.Recipient)" -ForegroundColor Green
        }
        else {
            Write-Host "Alias email address '$Alias' already exists for $($Mailbox.Recipient). Skipping..." -ForegroundColor Yellow
        }
    }
    # Set the primary email address if it's different from the current primary email
    if ($PrimaryEmail -ne $EXOMailbox.PrimarySMTPAddress) {
        Set-Mailbox -Identity $Mailbox.Recipient -WindowsEmailAddress $PrimaryEmail -WarningAction SilentlyContinue
        Write-Host "Setting primary email address to '$PrimaryEmail' for $($Mailbox.Recipient)" -ForegroundColor Green
    }
    else {
        Write-Host "Primary email address '$PrimaryEmail' is already set for $($Mailbox.Recipient). Skipping..." -ForegroundColor Yellow
    }
}

El script de PowerShell hará lo siguiente:

  • Agregue las nuevas direcciones SMTP de alias
  • Establecer una nueva dirección SMTP principal
  • La antigua dirección SMTP principal cambiará a una dirección SMTP alias
  • También mantendrá todas las direcciones de correo electrónico existentes del destinatario.
  • Muestra si las direcciones de correo electrónico principal y de alias ya están configuradas
Adding alias email address 'Brenda.A1@m365info.com' to Brenda.Smith@m365info.com
Adding alias email address 'Brenda.A2@m365info.com' to Brenda.Smith@m365info.com
Alias email address 'Brenda.A3@m365info.com' already exists for Brenda.Smith@m365info.com. Skipping...
Setting primary email address to 'Brenda.Smith1@m365info.com' for Brenda.Smith@m365info.com

Agregar direcciones de correo electrónico SMTP secundarias desde un archivo CSV

En el siguiente ejemplo, solo queremos agregar direcciones SMTP secundarias desde un archivo CSV sin eliminar ningún alias existente para el destinatario.

Puede optar por agregar una o varias direcciones de correo electrónico SMTP secundarias a cada destinatario en el archivo CSV.

Necesita crear un archivo CSV:

  1. Nombra la primera columna Destinatario y enumera todos los destinatarios debajo de ella.
  2. Asigne un nombre a la tercera columna, AliasEmail y enumere todas las direcciones de correo electrónico que aparecen debajo de ella.
  3. Utilice el carácter de punto y coma (;) para separar las direcciones de correo electrónico en la columna AliasEmail.

  1. Nombra el archivo SecondaryAddresses y guárdalo como un archivo CSV.
  2. Cree una carpeta temp en la unidad (C:) si no tiene una.
  3. Guarde el archivo SecondaryAddresses.csv en la carpeta temporal
  4. Para asegurarse de que PowerShell pueda leer el archivo, ejecute el cmdlet Import-Csv.
Import-Csv "C:\temp\SecondaryAddresses.csv"
  1. Especifique el archivo ruta CSV en la línea 1
  2. Ejecute el siguiente script de PowerShell
$Recipients = Import-Csv "C:\temp\SecondaryAddresses.csv"
foreach ($Mailbox in $Recipients) {
    $AliasEmails = $Mailbox.AliasEmail -split ';'

    # Get current email addresses of the mailbox
    $EXOMailbox = Get-Mailbox -Identity $Mailbox.Recipient

    foreach ($Alias in $AliasEmails) {
        # Check if alias already exists
        if ($EXOMailbox.EmailAddresses -notcontains "smtp:$Alias") {
            Set-Mailbox -Identity $Mailbox.Recipient -EmailAddresses @{add = "smtp:$Alias" } -WarningAction SilentlyContinue
            Write-Host "Adding alias email address '$Alias' to $($Mailbox.Recipient)" -ForegroundColor Green
        }
        else {
            Write-Host "Alias email address '$Alias' already exists for $($Mailbox.Recipient). Skipping..." -ForegroundColor Yellow
        }
    }
}

¡Eso es todo!

Leer más: Cómo asignar licencias de Microsoft 365 con PowerShell »

Conclusión

Aprendió a agregar direcciones de correo electrónico con PowerShell. Si solo desea agregar direcciones de correo electrónico para un único buzón, puede usar el centro de administración de Exchange o PowerShell. Sin embargo, cambiar la dirección SMTP principal y las direcciones de correo electrónico secundarias para varios buzones es más rápido con PowerShell.

Disfrutaste este artículo? También te puede gustar Administrar la contraseña de los usuarios de Microsoft 365. No olvides seguirnos y compartir este artículo.

Artículos relacionados