Por lo general el tema de respuestas automáticas es un asunto bien resuelto en Office 365 a través de la interfaz web de OWA, la gestión de usuarios a nivel administrador o la propia configuración en cliente de Outlook. Hay sin embargo casos en que necesitemos establecer o deshabilitar respuestas automáticas para diversos usuarios o que a través de la interfaz web nos encontremos con el error "The operation couldn't be performed because 'name' matches multiple entries". En estos casos es mejor tirar de Powershell.
Conexión a Exchange a través de Powershell
Para gestionar las respuestas automáticas nos conectaremos a Exchange, por ejemplo, mediante el Powershell que podemos lanzar desde el admin de Exchange de Office 365. Utilizando el siguiente comando
connect-exopssession -userprincipalname [email protected]
Revisar configuración de respuestas automáticas.
Lo primero que haremos será ver la configuración actual, es decir si tenemos las autorespuestas activadas o no. Lo podemos hacer con el cmdlet get-MailboxAutoReplyConfiguration como vemos a continuación.
get-MailboxAutoReplyConfiguration -Identity "Ejemplo"
Lo podemos hacer a través del displayname como en el ejemplo anterior o a través del propio email como vemos aquí
get-MailboxAutoReplyConfiguration -Identity [email protected]
AutoReplyState : Scheduled
El valor de AutoReplyState será Scheduled en caso que tengamos alguna autorespuesta programada, Enabled si está puesta sin más o Disabled si no hay auto respuesta.
Podemos obviamente también obtener la configuración al revés, primero seleccionando usuarios y luego preguntando a esos objetos por su configuración de correo, como en este ejemplo en el que la listariamos para todos los usuarios.
Get-Mailbox -ResultSize unlimited | Get-MailboxAutoReplyConfiguration
Habilitar respuestas automáticas en Office 365 con Powershell
Una vez comprobada la configuración actual podemos establecer respuestas automáticas con el cmdlet Set-MailboxAutoReplyConfiguration. Importante recordar que podemos establecer 2 respuestas automáticas independientes, una para usuarios internos y otra para los externos a nuestro tenant.
En el siguiente ejemplo estamos estableciendo una respuesta automática para ambos, si no quisiéramos alguna de ellas, simplemente obviamos el parámetro correspondiente en la instrucción.
Set-MailboxAutoReplyConfiguration -Identity [email protected] -AutoReplyState Enabled -InternalMessage "Fuera de oficina interno" -ExternalMessage "Fuera de oficina externo."
Si volvemos a comprobar el estado de la autorespuesta veremos qué en los campos especificados aparece nuestro mensaje envuelto en código html. El método anterior es válido para mensajes sencillos, pero este código html nos da la pista si queremos definir mensajes más elaborados.
Definición de auto respuesta compleja
Por ejemplo si queremos especificar el mensaje
Hola
No estoy en la oficina
Solo por contener ese salto de línea ya deberemos indicarlo en una variable y luego llamar al contenido de la misma al habilitar la auto respuesta. Vamos a ver este ejemplo a continuación.
Primero definimos nuestro mensaje dentro de una variable
$mensaje = "<html><head></head><body><p>Hola</br>No estoy en la oficina<p></body></html>"
Y ahora podemos activarla de manera similar a como lo hemos hecho antes. Por descontado, podemos usar diferentes variables para especificar diferentes mensajes.
Set-MailboxAutoReplyConfiguration -Identity [email protected] -AutoReplyState Enabled -InternalMessage $mensaje -ExternalMessage $mensaje
Definir a qué usuarios externos se envían respuestas automáticas.
Podemos definir a qué tipo de usuario externo queremos enviar respuestas automáticas. Esto lo podemos controlar con el parámetro ExternalAudience del cmdlet Set-MailboxAutoReplyConfiguration.
Este parámetro admite 3 valores, siendo "All" el por defecto y el que será usado si no especificamos otro.
- None - no envía a usuarios externos.
- Known - envía solo a usuarios externos presentes en la lista de contactos.
- All - envía a todos los destinatarios externos.
En el siguiente ejemplo vemos cómo especificar que solo aquellos remitentes externos presentes en nuestra lista de contactos reciban la autorespuesta.
Set-MailboxAutoReplyConfiguration -Identity [email protected] -ExternalAudience "Known" -InternalMessage "Fuera de oficina interno" -ExternalMessage "Fuera de oficina externo"
Definir fechas para el envío de autorespuestas.
Si configuramos el envío de autorespuestas como en el ejemplo anterior se comenzarán a enviar de inmediato. Tenemos también la opción de configurar en qué días queremos que se envíen. Para ello tendremos que indicar el parámetro -AutoReplyState a “Scheduled” además de definir un "StartTime" y "EndTime".
Importante tener en cuenta que el formato de fecha ha de coincidir con el que tengamos definido para fecha corta en nuestro pc. En el siguiente ejemplo estaríamos definiendo una respuesta automática sólo para usuarios internos entre el 15 y el 31 de Agosto
Set-MailboxAutoReplyConfiguration -Identity [email protected] -AutoReplyState Scheduled -StartTime "08/15/2023 01:00:00" -EndTime "08/31/2018 23:00:00" -InternalMessage "Fuera de oficina interno"
Deshabilitar respuesta automática
En el caso que queramos deshabilitarla, simplemente debemos modificar el parámetro -AutoReplyState a deshabilitado.
Set-MailboxAutoReplyConfiguration -Identity [email protected] -AutoReplyState Disabled
Y de nuevo podemos comprobar el estado para asegurarnos con
get-MailboxAutoReplyConfiguration -Identity [email protected] | select autoreplystate
AutoReplyState
--------------
Disabled
Eliminar mensajes de auto respuesta
Como bien sabréis deshabilitar la auto respuesta no influye en el mensaje, que permanece intacto a la espera que se reactive. Si queremos eliminar completamente estos mensajes lo haremos indicando mensaje en blanco como vemos en el siguiente ejemplo.
Set-MailboxAutoReplyConfiguration -Identity [email protected] -AutoReplyState Disabled -InternalMessage "" -ExternalMessage ""
Espero que os sea de utilidad