Enviar como (SendAs) y enviar en nombre de (SendOnBehalfOf) con Exchange Online y Powershell
Hay muchas veces en que en nuestros entornos administrados nos exigen que no solo hayan correos departamentales y los reciban varios usuarios (Grupos de Distribución), sino que además estos respondan o envíen correos desde el departamento y no desde el buzon personal… Para ello Microsoft ha proporcionado un par de Cmdlets que podemos utilizar mediante Powershell para aportar una solución: SendAs y SendOnBehalfOf.
Así que empecemos por destacar las diferencias de estos:
SendAs: Nos permite enviar correo bajo el correo Departamento@empresa.com desde el buzon usuario@empresa.com , de esta forma el destinatario recibirá el correo con el nombre del departamento como remitente.
Este método es realmente útil para situaciones en las que disponemos dos direcciones de correo personales y no queremos utilizar una licencia adicional…
También si lo que queremos es que no se utilicen los buzones personales para enviar correo fuera de la organización.
SendOnBehalfOf: Nos permite enviar correo en nombre de Departamento@empresa.com mediante usuario@empresa.com, de esta forma el destinatario recibirá un correo de “Usuario en nombre de departamento» (P.e: John Summer en nombre de Company ITSupport).
Este método es útil cuando lo que queremos es que el destinatario sepa que persona del departamento escribe en nombre de un departamento concreto de la organización y al responder, los correos lleguen al departamento en general.
Bueno una vez dicho esto, vamos al proceso de ambos. Tengamos en cuenta que antes de ejecutar los siguientes comandos, deberemos haber preparado el entorno de powershell para Office 365 si no lo tenemos ya…
SendAs
- Para un solo usuario:
$LIveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LIveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session
Add-RecipientPermission departamento@empresa.com -AccessRights SendAs -Trustee usuario@empresa.com -Confirm:$false
- Para un Grupo de Seguridad/Distribución:
Add-RecipientPermission departamento@empresa.com -AccessRights SendAs -Trustee grupo@empresa.com -Confirm:$false
- Para ver los permisos de SendAs aplicados a la organización:
Get-RecipientPermission | where {($_.Trustee -ne ‘nt authority\self’) -and ($_.Trustee -ne ‘null sid’)}
- Para ver los permisos de SendAs aplicados a un usuario concreto:
Get-RecipientPermission –Trustee Usuario@empresa.com
- Para revocar permisos de SendAs concretos:
Remove-RecipientPermission departamento@empresa.com -AccessRights SendAs –Trustee usuario@empresa.com
SendOnBehalfOf
- Para un solo usuario:
$LIveCred = Get-Credential$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LIveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session
Set-DistributionGroup Departamento@empresa.com -GrantSendOnBehalfTo usuario@empresa.com
El único problema de este código es que cuando volvamos a ejecutarlo para otro usuario dentro del mismo departamento, éste reemplazará los permisos del anterior y será el único que pueda enviar correos en nombre del departamento y por lo tanto es altamente recomendable hacerlo de la siguiente manera:
$a = Get-DistributionGroup departamento@empresa.com
$b = Get-User usuario@empresa.com
$a.GrantSendOnBehalfTo += $b.DistinguishedName
Set-DistributionGroup departamento@empresa.com -GrantSendOnBehalfTo $a.GrantSendOnBehalfTo
Get-DistributionGroup departamento@empresa.com | fl name,grant* > ListarQuienEnviaEnNombreDeEnBuzon.txt
De esta manera podremos ir agregando usuarios de forma concatenada, pero sin embargo requerirá el que ejecutemos el código cada vez que queramos agregar un usuario por lo que la tarea de administración será mayor…
- Para un Grupo de Seguridad/Distribución:
Esta es la mejor opción, nos ahorrará tiempo de administración evitando el tener que tirar líneas de powershell innecesarias cada vez que entre un usuario al departamento…
$a = Get-DistributionGroup departamento@empresa.com
$b = Get-DistributionGroup «Grupo de Distribucion»
$a.GrantSendOnBehalfTo += $b.DistinguishedName
Set-DistributionGroup departamento@empresa.com -GrantSendOnBehalfTo $a.GrantSendOnBehalfTo
Get-DistributionGroup departamento@empresa.com | fl name,grant* > ListarQuienEnviaEnNombreDeEnBuzon.txt
He agregado en la ultima línea «> ListarQuienEnviaEnNombreDeEnBuzon.txt» de forma que me informe de que usuarios ha agregado al departamento y asi pueda enviarlo como informe a quien haya hecho la solicitud.
Una vez hecho esto, el usuario solo deberá especificar la dirección de correo desde la que quiere enviar correo mediante OWA o Microsoft Outlook.
En Microsoft Outlook (si el usuario no dispone de más de una cuenta) deberemos habilitar el campo «De:» en «mensaje nuevo» – «Opciones» – «Mostrar De:» y entonces podremos indicar la dirección desde la que queremos enviar escribiéndola al pinchar en «Escribir otra dirección de correo eletronico»
En OWA pasa lo mismo, y para habilitar el campo procedemos de la misma manera: