Como Forçar Resposta em Texto Simples para um Domínio Específico no Outlook
🔍 WiseChecker

Como Forçar Resposta em Texto Simples para um Domínio Específico no Outlook

Quando você responde a um e-mail no Outlook, o formato da mensagem geralmente corresponde ao e-mail original. Mas se você se corresponde regularmente com um domínio específico que exige respostas em texto simples, pode automatizar essa configuração. O Outlook não oferece uma regra nativa por domínio. No entanto, você pode conseguir isso combinando uma regra personalizada do Outlook com um script Visual Basic for Applications. Este artigo explica como criar uma regra que detecta respostas a um domínio específico e força a resposta para o formato de texto simples.

A solução principal usa uma regra do Outlook que aciona um script VBA. O script verifica o domínio do destinatário da resposta e altera o formato do e-mail para texto simples antes do envio. Você precisará habilitar macros no Outlook e confiar no projeto VBA. Este guia detalha cada etapa para configurar a regra e o script.

Ao final deste artigo, você terá uma regra funcional que converte automaticamente respostas para texto simples para qualquer domínio de destinatário especificado. Você pode modificar a lista de domínios no script para adicionar ou remover domínios conforme necessário. Este método funciona no Outlook 2016, Outlook 2019, Outlook para Microsoft 365 e Outlook 2021 no Windows 10 e Windows 11.

Principais Conclusões: Forçar Resposta em Texto Simples por Domínio

  • Regra do Outlook + Script VBA: A única maneira de forçar o formato de resposta em texto simples com base no domínio do destinatário sem complementos de terceiros.
  • Alt+F11: Abre o editor VBA onde você cola o script que verifica o domínio e define MailItem.BodyFormat como olFormatPlain.
  • Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro: Habilite todas as macros e confie no acesso ao modelo de objeto do projeto VBA.
  • Regra com ação “executar um script”: Aciona o script VBA em cada resposta enviada para o domínio especificado.

ADVERTISEMENT

Como a Regra do Outlook e o Script VBA Funcionam Juntos

As regras do Outlook podem executar ações automaticamente ao enviar ou receber mensagens. Uma ação disponível é executar um script VBA. Ao criar uma regra que aciona respostas de saída, você pode anexar um script que inspeciona o domínio do destinatário e altera o formato da mensagem para texto simples. O script é executado antes do e-mail sair da Caixa de Saída, então o destinatário recebe uma mensagem em texto simples mesmo que o e-mail original fosse HTML ou Rich Text.

O script VBA usa o evento Application_ItemSend ou uma Sub acionada por regra para interceptar o item de saída. Neste guia, usamos um script acionado por regra porque permite especificar exatamente qual domínio aciona a alteração de formato. O script verifica o domínio do endereço de e-mail do destinatário e define a propriedade BodyFormat como olFormatPlain (valor 1). Ele também converte o corpo HTML para texto simples removendo tags, garantindo que nenhum artefato de formatação permaneça.

Pré-requisitos: Você precisa de direitos administrativos na sua conta de usuário do Windows para habilitar macros no Outlook. O projeto VBA é armazenado no seu perfil do Outlook, então a regra e o script se aplicam apenas ao seu cliente Outlook local. Este método não funciona no Outlook na web ou em dispositivos móveis.

Passos para Criar a Regra de Resposta em Texto Simples para um Domínio Específico

Siga estes passos para criar uma regra e um script VBA que forçam respostas em texto simples para um domínio específico. Substitua exemplo.com pelo seu domínio alvo no script.

Passo 1: Habilitar Macros no Outlook

  1. Abrir a Central de Confiabilidade
    Vá em Arquivo > Opções > Central de Confiabilidade. Clique em Configurações da Central de Confiabilidade.
  2. Alterar Configurações de Macro
    Selecione Configurações de Macro. Escolha “Habilitar todas as macros (não recomendado; código potencialmente perigoso pode ser executado)”. Marque a caixa “Confiar acesso ao modelo de objeto do projeto VBA”. Clique em OK duas vezes.

Passo 2: Abrir o Editor VBA e Inserir o Script

  1. Abrir o Editor VBA
    Pressione Alt+F11 no Outlook. Se o Explorador de Projetos não estiver visível, pressione Ctrl+R para exibi-lo.
  2. Inserir um Novo Módulo
    No Explorador de Projetos, expanda Project1 (VbaProject.OTM). Clique com o botão direito em Módulos, escolha Inserir > Módulo. Um módulo em branco é aberto.
  3. Copiar o Script
    Copie e cole o seguinte código VBA no módulo. Substitua exemplo.com pelo seu domínio alvo. Para adicionar vários domínios, use Or InStr(destinatario, "@dominio2.com") > 0.
    Sub ForcePlainTextReply(Item As Outlook.MailItem)
        Dim destinatario As String
        Dim i As Integer
        
        ' Verifica se o item é uma resposta
        If Item.ReplyRecipients.Count = 0 Then Exit Sub
        
        ' Percorre os destinatários da resposta
        For i = 1 To Item.ReplyRecipients.Count
            destinatario = LCase(Item.ReplyRecipients.Item(i).Address)
            ' Verifica se o domínio do destinatário corresponde ao alvo
            If InStr(destinatario, "@exemplo.com") > 0 Then
                ' Define o formato como texto simples
                Item.BodyFormat = olFormatPlain
                ' Converte o corpo HTML para texto simples
                Item.Body = Item.Body
                Exit For
            End If
        Next i
    End Sub
    
  4. Salvar e Fechar
    Pressione Ctrl+S para salvar. Feche o editor VBA.

Passo 3: Criar a Regra do Outlook

  1. Abrir o Assistente de Regras
    Vá em Arquivo > Gerenciar Regras e Alertas. Clique em Nova Regra.
  2. Selecionar Modelo
    Em “Iniciar de uma regra em branco”, selecione “Aplicar regra em mensagens que eu envio”. Clique em Avançar.
  3. Definir Condições
    Marque “enviado somente para mim”. Isso garante que a regra seja acionada apenas em respostas ou encaminhamentos onde você está no campo Para. Clique em Avançar. Clique em Sim quando perguntado sobre exceções.
  4. Selecionar Ação
    Marque “executar um script”. No painel inferior, clique no sublinhado “um script”. Selecione “ForcePlainTextReply” na lista. Clique em OK. Clique em Avançar.
  5. Definir Exceções
    Deixe as exceções vazias. Clique em Avançar.
  6. Nomear e Finalizar
    Digite um nome como “Forçar Resposta em Texto Simples para exemplo.com”. Marque “Ativar esta regra”. Clique em Concluir. Clique em OK.

ADVERTISEMENT

Se a Regra Não Funcionar ou o Script Falhar

A combinação de regra e script é confiável, mas alguns problemas podem impedir seu funcionamento. Aqui estão os problemas mais comuns e como corrigi-los.

O script não é executado ao responder e-mails do domínio alvo

A condição da regra “enviado somente para mim” pode ser muito restritiva. Se você responder a um e-mail onde o remetente original não está na sua agenda de endereços ou o destinatário da resposta não está no campo Para, a regra pode não ser acionada. Altere a condição para “enviado para pessoas ou lista de distribuição” e selecione seu próprio endereço de e-mail. Alternativamente, remova as condições completamente para que a regra se aplique a todas as mensagens de saída e deixe o script filtrar por domínio.

A segurança de macro bloqueia o script

Se você vir um aviso de segurança sobre macros, o script não será executado. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro. Certifique-se de que “Habilitar todas as macros” esteja selecionado e “Confiar acesso ao modelo de objeto do projeto VBA” esteja marcado. Além disso, adicione seu projeto VBA como um local confiável: na Central de Confiabilidade, selecione Locais Confiáveis, adicione um local apontando para o arquivo do projeto VBA do Outlook (geralmente em %appdata%\Microsoft\Outlook).

O e-mail ainda é enviado em HTML ou Rich Text

O script pode não ser executado porque a ação da regra “executar um script” exige que o script esteja em um módulo, não no painel de código ThisOutlookSession. Confirme se o script está em um módulo padrão (pasta Modules). Além disso, o script usa Item.ReplyRecipients que pode estar vazio para novas respostas compostas da Caixa de Entrada. Nesse caso, modifique o script para verificar Item.To em vez dos destinatários da resposta. Substitua o loop por:

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

Script Acionado por Regra vs Evento ItemSend: Principais Diferenças

O método descrito neste artigo usa um script acionado por regra. Outra abordagem usa o evento Application_ItemSend que é disparado em toda mensagem de saída. A tabela abaixo compara as duas abordagens.

Item Script Acionado por Regra Evento Application_ItemSend
Mecanismo de acionamento Regra do Outlook com ação “executar um script” Manipulador de evento em ThisOutlookSession
Filtragem por domínio Script verifica destinatários e aplica formato Script verifica destinatários e aplica formato
Complexidade de configuração Requer criar uma regra e um script em módulo Requer apenas código em ThisOutlookSession
Escopo Aplica-se apenas a mensagens que correspondem às condições da regra Aplica-se a todas as mensagens de saída
Impacto no desempenho Baixo; executa apenas quando as condições da regra são atendidas Executa em todo envio; pequeno atraso
Melhor para Domínios específicos ou casos de uso limitados Imposição global de formato

O script acionado por regra é melhor para segmentar um domínio específico porque é executado apenas quando as condições da regra são atendidas. O evento ItemSend é executado em toda mensagem de saída, o que pode desacelerar o envio se você tiver muitos e-mails. Para o caso de uso de forçar texto simples para um domínio, o script acionado por regra é a abordagem recomendada.

Após configurar a regra e o script, teste enviando uma resposta a um e-mail do domínio alvo. Componha uma resposta em formato HTML e envie. O destinatário deve receber uma mensagem em texto simples. Para verificar, envie um e-mail de teste para você mesmo usando uma conta do domínio alvo e confira o formato da mensagem na sua Caixa de Entrada.

Você pode estender o script para suportar vários domínios adicionando mais condições Or InStr. Por exemplo: If InStr(destinatario, "@exemplo.com") > 0 Or InStr(destinatario, "@teste.org") > 0 Then. Você também pode modificar o script para forçar texto simples em novas mensagens, não apenas respostas, removendo a verificação de destinatários da resposta e sempre verificando o campo Para.

ADVERTISEMENT