Cómo forzar respuesta en texto sin formato para un dominio de destinatario específico en Outlook
🔍 WiseChecker

Cómo forzar respuesta en texto sin formato para un dominio de destinatario específico en Outlook

Cuando responde a un correo electrónico en Outlook, el formato del mensaje suele coincidir con el correo original. Pero si se comunica regularmente con un dominio específico que requiere respuestas en texto sin formato, es posible que desee automatizar esta configuración. Outlook no ofrece una regla integrada de formato de respuesta por dominio. Sin embargo, puede lograrlo combinando una regla personalizada de Outlook con un script de Visual Basic for Applications. Este artículo explica cómo crear una regla que detecte respuestas a un dominio específico y fuerce la respuesta al formato de texto sin formato.

La solución principal utiliza una regla de Outlook que activa un script de VBA. El script verifica el dominio del destinatario de la respuesta y cambia el formato del correo electrónico a texto sin formato antes de enviarlo. Deberá habilitar las macros en Outlook y confiar en el proyecto de VBA. Esta guía explica cada paso para configurar la regla y el script.

Al final de este artículo, tendrá una regla funcional que convierte automáticamente las respuestas a texto sin formato para cualquier dominio de destinatario que especifique. Puede modificar la lista de dominios en el script para agregar o quitar dominios según sea necesario. Este método funciona en Outlook 2016, Outlook 2019, Outlook para Microsoft 365 y Outlook 2021 en Windows 10 y Windows 11.

Puntos clave: Forzar respuesta en texto sin formato por dominio

  • Regla de Outlook + script de VBA: La única forma de forzar el formato de respuesta en texto sin formato según el dominio del destinatario sin complementos de terceros.
  • Alt+F11: Abre el editor de VBA donde se pega el script que verifica el dominio y establece MailItem.BodyFormat en olFormatPlain.
  • Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros: Habilite todas las macros y confíe en el acceso al modelo de objetos del proyecto de VBA.
  • Regla con la acción “ejecutar un script”: Activa el script de VBA en cada respuesta saliente que envíe al dominio especificado.

ADVERTISEMENT

Cómo funcionan juntas la regla de Outlook y el script de VBA

Las reglas de Outlook pueden realizar acciones automáticamente cuando se envían o reciben mensajes. Una acción disponible es ejecutar un script de VBA. Cuando se crea una regla que se activa en respuestas salientes, se puede adjuntar un script que inspecciona el dominio del destinatario y cambia el formato del mensaje a texto sin formato. El script se ejecuta antes de que el correo electrónico salga de la Bandeja de salida, por lo que el destinatario recibe un mensaje de texto sin formato incluso si el correo original era HTML o texto enriquecido.

El script de VBA utiliza el evento Application_ItemSend o un Sub activado por regla para interceptar el elemento saliente. En esta guía, usamos un script activado por regla porque permite especificar exactamente qué dominio activa el cambio de formato. El script verifica el dominio de la dirección de correo electrónico del destinatario y establece la propiedad BodyFormat en olFormatPlain (valor 1). También convierte el cuerpo HTML a texto sin formato eliminando las etiquetas, lo que garantiza que no queden artefactos de formato.

Requisitos previos: Necesita derechos administrativos en su cuenta de usuario de Windows para habilitar macros en Outlook. El proyecto de VBA se almacena en su perfil de Outlook, por lo que la regla y el script se aplican solo a su cliente de Outlook local. Este método no funciona en Outlook en la web ni en dispositivos móviles.

Pasos para crear la regla de respuesta en texto sin formato para un dominio específico

Siga estos pasos para crear una regla y un script de VBA que fuercen respuestas en texto sin formato para un dominio específico. Reemplace example.com con su dominio de destino en el script.

Paso 1: Habilitar macros en Outlook

  1. Abrir el Centro de confianza
    Vaya a Archivo > Opciones > Centro de confianza. Haga clic en Configuración del Centro de confianza.
  2. Cambiar la configuración de macros
    Seleccione Configuración de macros. Elija “Habilitar todas las macros (no se recomienda; se puede ejecutar código potencialmente peligroso)”. Marque la casilla “Confiar en el acceso al modelo de objetos del proyecto de VBA”. Haga clic en Aceptar dos veces.

Paso 2: Abrir el editor de VBA e insertar el script

  1. Abrir el editor de VBA
    Presione Alt+F11 en Outlook. Si el Explorador de proyectos no está visible, presione Ctrl+R para mostrarlo.
  2. Insertar un nuevo módulo
    En el Explorador de proyectos, expanda Project1 (VbaProject.OTM). Haga clic con el botón derecho en Módulos, elija Insertar > Módulo. Se abre un módulo en blanco.
  3. Pegar el script
    Copie y pegue el siguiente código de VBA en el módulo. Reemplace example.com con su dominio de destino. Para agregar varios dominios, use Or InStr(recipient, "@domain2.com") > 0.
    Sub ForcePlainTextReply(Item As Outlook.MailItem)
        Dim recipient As String
        Dim i As Integer
        
        ' Check if the item is a reply
        If Item.ReplyRecipients.Count = 0 Then Exit Sub
        
        ' Loop through reply recipients
        For i = 1 To Item.ReplyRecipients.Count
            recipient = LCase(Item.ReplyRecipients.Item(i).Address)
            ' Check if recipient domain matches target
            If InStr(recipient, "@example.com") > 0 Then
                ' Set format to plain text
                Item.BodyFormat = olFormatPlain
                ' Convert HTML body to plain text
                Item.Body = Item.Body
                Exit For
            End If
        Next i
    End Sub
    
  4. Guardar y cerrar
    Presione Ctrl+S para guardar. Cierre el editor de VBA.

Paso 3: Crear la regla de Outlook

  1. Abrir el Asistente para reglas
    Vaya a Archivo > Administrar reglas y alertas. Haga clic en Nueva regla.
  2. Seleccionar plantilla
    En “Empezar desde una regla en blanco”, seleccione “Aplicar regla a los mensajes que yo envíe”. Haga clic en Siguiente.
  3. Establecer condiciones
    Marque “enviados solo a mí”. Esto garantiza que la regla se active solo en respuestas o reenvíos donde usted esté en el campo Para. Haga clic en Siguiente. Haga clic en Sí cuando se le pregunte sobre excepciones.
  4. Seleccionar acción
    Marque “ejecutar un script”. En el panel inferior, haga clic en el subrayado “un script”. Seleccione “ForcePlainTextReply” de la lista. Haga clic en Aceptar. Haga clic en Siguiente.
  5. Establecer excepciones
    Deje las excepciones vacías. Haga clic en Siguiente.
  6. Nombrar y finalizar
    Escriba un nombre como “Forzar respuesta en texto sin formato a example.com”. Marque “Activar esta regla”. Haga clic en Finalizar. Haga clic en Aceptar.

ADVERTISEMENT

Si la regla no se aplica o el script falla

La combinación de regla y script es confiable, pero varios problemas pueden impedir que funcione. Estos son los problemas más comunes y cómo solucionarlos.

El script no se ejecuta cuando respondo a correos electrónicos del dominio de destino

La condición de regla “enviados solo a mí” puede ser demasiado restrictiva. Si responde a un correo electrónico donde el remitente original no está en su libreta de direcciones o el destinatario de la respuesta no está en el campo Para, es posible que la regla no se active. Cambie la condición a “enviados a personas o listas de distribución” y seleccione su propia dirección de correo electrónico. Como alternativa, elimine las condiciones por completo para que la regla se aplique a todos los mensajes salientes y deje que el script filtre por dominio.

La seguridad de macros bloquea el script

Si ve una advertencia de seguridad sobre macros, el script no se ejecutará. Vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros. Asegúrese de que “Habilitar todas las macros” esté seleccionado y que “Confiar en el acceso al modelo de objetos del proyecto de VBA” esté marcado. Además, agregue su proyecto de VBA como ubicación de confianza: en el Centro de confianza, seleccione Ubicaciones de confianza, agregue una ubicación que apunte a su archivo de proyecto de VBA de Outlook (generalmente en %appdata%\Microsoft\Outlook).

El correo electrónico aún se envía en formato HTML o texto enriquecido

Es posible que el script no se ejecute porque la acción de regla “ejecutar un script” requiere que el script esté en un módulo, no en el panel de código ThisOutlookSession. Confirme que el script esté en un módulo estándar (carpeta Módulos). Además, el script usa Item.ReplyRecipients que puede estar vacío para nuevas respuestas compuestas desde la Bandeja de entrada. En ese caso, modifique el script para verificar Item.To en lugar de los destinatarios de la respuesta. Reemplace el bucle con:

If InStr(LCase(Item.To), "@example.com") > 0 Then
    Item.BodyFormat = olFormatPlain
    Item.Body = Item.Body
End If

Script activado por regla vs. evento ItemSend: diferencias clave

El método descrito en este artículo utiliza un script activado por regla. Otro enfoque utiliza el evento Application_ItemSend que se desencadena en cada mensaje saliente. La siguiente tabla compara los dos enfoques.

Elemento Script activado por regla Evento Application_ItemSend
Mecanismo de activación Regla de Outlook con acción “ejecutar un script” Controlador de eventos en ThisOutlookSession
Filtrado por dominio El script verifica los destinatarios y aplica el formato El script verifica los destinatarios y aplica el formato
Complejidad de configuración Requiere crear una regla y un script de módulo Requiere solo código en ThisOutlookSession
Alcance Se aplica solo a los mensajes que cumplen las condiciones de la regla Se aplica a todos los mensajes salientes
Impacto en el rendimiento Bajo; solo se ejecuta cuando se cumplen las condiciones de la regla Se ejecuta en cada envío; ligera demora
Ideal para Dominios específicos o casos de uso limitados Aplicación global del formato

El script activado por regla es mejor para dirigirse a un dominio específico porque se ejecuta solo cuando coinciden las condiciones de la regla. El evento ItemSend se ejecuta en cada mensaje saliente, lo que puede ralentizar el envío si tiene muchos correos electrónicos. Para el caso de uso de forzar texto sin formato para un dominio, el script activado por regla es el enfoque recomendado.

Después de configurar la regla y el script, pruebe enviando una respuesta a un correo electrónico del dominio de destino. Redacte una respuesta en formato HTML y luego envíela. El destinatario debe recibir un mensaje de texto sin formato. Para verificarlo, envíese un correo electrónico de prueba a sí mismo usando una cuenta del dominio de destino y compruebe el formato del mensaje en su Bandeja de entrada.

Puede ampliar el script para admitir varios dominios agregando más condiciones Or InStr. Por ejemplo: If InStr(recipient, "@example.com") > 0 Or InStr(recipient, "@test.org") > 0 Then. También puede modificar el script para forzar texto sin formato en mensajes nuevos, no solo en respuestas, eliminando la verificación del destinatario de la respuesta y verificando siempre el campo Para.

ADVERTISEMENT