Você está avaliando se o novo Outlook para Windows pode substituir o Outlook clássico em tarefas de automação baseadas em MAPI, como envio programático de e-mails, gerenciamento de itens de calendário ou automação de operações em pastas. O Outlook clássico oferece suporte à automação MAPI por meio de complementos COM e macros VBA, enquanto o novo Outlook usa uma plataforma baseada na web que não expõe as mesmas interfaces MAPI. Este artigo explica as diferenças técnicas entre as duas plataformas, fornece orientação prática para testar e migrar scripts de automação e descreve quais cenários de automação funcionam e quais não funcionam.
Principais Conclusões: Novo Outlook vs Clássico para Automação MAPI
- Modelo de Objetos do Outlook (COM) e MAPI: O Outlook clássico oferece suporte completo à automação MAPI via COM. O novo Outlook não expõe o modelo de objetos do Outlook para automação externa.
- Macros VBA e complementos COM: O Outlook clássico executa macros VBA e complementos COM de terceiros. O novo Outlook não oferece suporte a nenhum deles.
- Exchange Web Services (EWS) e Microsoft Graph: O novo Outlook usa exclusivamente a API Microsoft Graph. Os scripts de automação precisam ser reescritos para usar chamadas REST API em vez de MAPI.
Por que o Novo Outlook Não Consegue Executar Scripts de Automação MAPI Nativamente
O Outlook clássico (Microsoft Outlook 2019, 2021 e versões do Microsoft 365) é um cliente robusto que carrega a MAPI32.dll e expõe um modelo de objetos baseado em COM. Esse modelo de objetos permite que aplicativos externos, macros VBA e scripts do PowerShell automatizem tarefas como enviar e-mails, ler caixas de correio e modificar entradas de calendário. A interface MAPI é integrada ao sistema operacional Windows e ao perfil local do Outlook.
O novo Outlook para Windows é um invólucro baseado na web do Outlook na web (OWA). Ele não carrega a MAPI32.dll e não hospeda o modelo de objetos clássico do Outlook. Em vez disso, comunica-se exclusivamente com os servidores do Microsoft 365 por meio da API REST Microsoft Graph. Essa mudança arquitetônica significa que qualquer código de automação que faça referência ao objeto Outlook.Application, à sessão MAPI ou ao CDO (Collaboration Data Objects) não será executado no ambiente do novo Outlook.
A Microsoft afirmou que o novo Outlook foi projetado para usuários que não precisam de personalização ou automação avançada. A empresa recomenda que organizações com dependências de automação permaneçam no Outlook clássico até que seus scripts sejam migrados para o Microsoft Graph.
O que a Automação MAPI Abrange
A automação MAPI no Outlook clássico inclui estes cenários comuns:
- Complementos COM: Ferramentas de terceiros que estendem a funcionalidade do Outlook, como conectores de CRM, software de arquivamento de e-mail e ferramentas de conformidade.
- Macros VBA: Scripts executados dentro do Outlook para automatizar tarefas repetitivas, como mover e-mails para pastas, enviar respostas automáticas ou criar compromissos de calendário.
- Automação externa: Scripts do PowerShell ou aplicativos .NET que criam um objeto Outlook.Application para enviar e-mail ou ler dados da caixa de correio.
- CDO (Collaboration Data Objects): Bibliotecas antigas que encapsulam MAPI para automação no lado do servidor ou do cliente.
Passos para Testar Seus Scripts de Automação no Novo Outlook
Antes de decidir pela migração, teste cada cenário de automação no novo Outlook. Use a seguinte abordagem estruturada.
- Identifique todas as dependências de automação
Abra o Outlook clássico e vá em Arquivo > Opções > Suplementos. Revise a lista de complementos COM ativos. Verifique também o editor VBA pressionando Alt+F11 e revise todos os módulos em Project1 (VbaProject.OTM). Documente cada script, complemento e aplicativo externo que chama o Outlook programaticamente. - Ative o novo Outlook para um usuário de teste
No centro de administração do Microsoft 365, vá em Configurações da Organização > Autenticação Moderna e ative a opção para o novo Outlook. Alternativamente, cada usuário pode ativá-lo alternando o botão “Experimentar o novo Outlook” no canto superior direito do Outlook clássico. Teste primeiro em uma conta de usuário não produtiva. - Execute cada script de automação manualmente
Para macros VBA: abra o editor VBA no novo Outlook. O editor não está disponível. As macros não serão executadas. Para complementos COM: verifique se o complemento carrega em Arquivo > Opções > Suplementos. A maioria dos complementos COM não aparecerá porque o novo Outlook não oferece suporte ao modelo de complemento COM. Para automação externa: execute seu script do PowerShell ou .NET que cria um objeto Outlook.Application. O script gerará o erro 0x80040154 “Classe não registrada” porque o ProgID Outlook.Application não está registrado pelo novo Outlook. - Documente as falhas e planeje a migração
Para cada tarefa de automação que falhou, determine se existe um equivalente no Microsoft Graph. Por exemplo, enviar um e-mail via Graph usa POST /me/sendMail. Ler itens da caixa de entrada usa GET /me/messages. Criação de calendário usa POST /me/events. O Microsoft Graph Explorer (graph.microsoft.com) é uma ferramenta gratuita para testar esses endpoints. - Reescreva os scripts usando o Microsoft Graph
Use o SDK do PowerShell do Microsoft Graph ou a API REST do Microsoft Graph diretamente. Registre um aplicativo no Azure Active Directory com as permissões necessárias (Mail.Send, Mail.Read, Calendars.ReadWrite, etc.). Substitua todas as referências de objeto do Outlook por chamadas à API Graph. Teste os novos scripts em um ambiente de sandbox antes de implantar em produção.
Se Sua Automação Ainda Depende do Outlook Clássico
Organizações com dependências pesadas de automação MAPI não devem migrar para o novo Outlook até que todos os scripts e complementos críticos sejam reescritos. Os seguintes problemas são comuns.
Complemento COM não carrega no novo Outlook
Os complementos COM são compilados com base no modelo de objetos do Outlook clássico. O novo Outlook não carrega complementos COM. O fornecedor deve fornecer um suplemento web criado com Office.js ou uma integração com o Microsoft Graph. Verifique com o fornecedor do seu complemento um plano de migração. Se nenhum suplemento web estiver disponível, você não poderá usar esse complemento no novo Outlook.
Macro VBA falha com erro de tempo de execução 429
Ao tentar executar uma macro VBA no novo Outlook, o editor VBA está completamente ausente. As macros não podem ser criadas, editadas ou executadas. Migre a lógica VBA para um script do PowerShell ou um fluxo do Power Automate que use o Microsoft Graph.
Aplicativo externo não consegue criar objeto Outlook.Application
Qualquer programa externo que use CreateObject(“Outlook.Application”) ou New Outlook.Application falhará porque a classe COM não está registrada. Reescreva o aplicativo para usar o SDK do Microsoft Graph para .NET ou uma chamada direta à API REST.
Script do PowerShell usando New-Object -ComObject Outlook.Application falha
Esta é a mesma causa raiz. O objeto COM do Outlook não está disponível. Substitua o script pelo módulo do PowerShell do Microsoft Graph. Instale o módulo com Install-Module Microsoft.Graph e use comandos como Send-MgUserMail em vez de $outlook.CreateItem(0).
| Item | Outlook Clássico | Novo Outlook |
|---|---|---|
| Interface de automação | COM (Modelo de Objetos do Outlook) | Apenas API REST Microsoft Graph |
| Macros VBA | Suportado via editor Alt+F11 | Não suportado |
| Complementos COM | Suportado | Não suportado |
| CDO (Collaboration Data Objects) | Suportado | Não suportado |
| Automação PowerShell | New-Object -ComObject Outlook.Application | SDK do PowerShell Microsoft Graph |
| Automação .NET externa | Microsoft.Office.Interop.Outlook | SDK .NET Microsoft.Graph |
| Dependência MAPI32.dll | Sim | Não |
| Capacidade de automação offline | Funciona com arquivo OST em cache | Requer conexão com a internet |
O novo Outlook não pode substituir o Outlook clássico para automação MAPI porque toda a camada de automação é diferente. O Outlook clássico usa um modelo de objetos COM local que dá aos scripts acesso direto à caixa de correio. O novo Outlook usa uma API web que requer autenticação do Azure AD e chamadas REST. Organizações com automação MAPI existente devem planejar uma migração em fases para o Microsoft Graph, mantendo o Outlook clássico para usuários que dependem de complementos COM ou macros VBA. Para uma lista completa de operações suportadas pela API Graph, consulte a documentação do Microsoft Graph em learn.microsoft.com/graph.