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.
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
- Abrir a Central de Confiabilidade
Vá em Arquivo > Opções > Central de Confiabilidade. Clique em Configurações da Central de Confiabilidade. - 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
- 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. - 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. - Copiar o Script
Copie e cole o seguinte código VBA no módulo. Substituaexemplo.compelo seu domínio alvo. Para adicionar vários domínios, useOr 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 - Salvar e Fechar
Pressione Ctrl+S para salvar. Feche o editor VBA.
Passo 3: Criar a Regra do Outlook
- Abrir o Assistente de Regras
Vá em Arquivo > Gerenciar Regras e Alertas. Clique em Nova Regra. - Selecionar Modelo
Em “Iniciar de uma regra em branco”, selecione “Aplicar regra em mensagens que eu envio”. Clique em Avançar. - 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. - 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. - Definir Exceções
Deixe as exceções vazias. Clique em Avançar. - 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.
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.