Email Autenticação OAuth2
Passo a passo de como fazer a configuração para provedores de e-mail que utilizam a autenticação OAuth2.
Para testar pode-se usar a própria conta com o domínio dataplussistemas.com.br
1° Passo - Criar conta Outlook para acesso ao Azure
2° Passo - Acessar portal de E-mails
Acesse: Gerenciador de E-mail
Nessa etapa é preciso realizar a marcação da Autenticação SMTP para os usuários que irão realizar o envio de e-mails.


3° Passo - Criar aplicativo
Acesse: Registro de Aplicativo

As credenciais apontadas na imagem serão informadas nas configurações gerais do ERP:

É preciso realizar a criação do segredo que é o Client-Secret que será informado no ERP:


Para que tenha o funcionamento adequado é preciso selecionar algumas permissões para a API (Mail.Send e SMTP.SendAsApp)


Após as permissões terem sido adicionadas, é preciso realizar o consentimento de administrador para elas:


4° Passo - Obter ObjectId para os comandos do PowerShell

5° Passo - Realizar a liberação dos usuários para envio do e-mail
Abra o PowerShell no modo administrador. Esse processo deve ser realizado pelo administrador do domínio:
1° - Install-Module ExchangeOnlineManagement -Force
- O comando instala o módulo oficial do PowerShell necessário para administrar o Exchange Online. O parâmetro -Force força a instalação mesmo que o módulo já exista ou esteja desatualizado.
2° - Import-Module ExchangeOnlineManagement
- O comando carrega esse módulo na sessão atual do PowerShell, tornando os cmdlets do Exchange disponíveis para uso.
3° - Connect-ExchangeOnline
- O comando inicia a conexão com o ambiente Exchange Online da Microsoft. Ao executá-lo, você será solicitado a informar suas credenciais administrativas.
4° A - Set-TransportConfig -SmtpClientAuthenticationDisabled $false (Ativação global)
- O comando habilita globalmente o suporte à autenticação SMTP no seu tenant Microsoft 365. Isso permite que os usuários usem login (senha ou OAuth2) para enviar e-mails via SMTP, por exemplo, usando smtp.office365.com.
OU
4° B - Set-CASMailbox -Identity "usuario@email.com.br" -SmtpClientAuthenticationDisabled $false (Ativação individual)
- O comando ativa explicitamente a autenticação SMTP para esse usuário específico. Isso é útil caso você queira ativar SMTP apenas para alguns usuários, mesmo que a configuração global esteja desativada.
5° - Get-ManagementRoleAssignment -Role "Role Management"
- O comando verifica se sua conta tem atribuição para o papel “Role Management”, necessário para criar service principals e modificar permissões avançadas.
6° - New-ServicePrincipal -AppId <client_id> -ObjectId <object_id>
- O comando registra um service principal (aplicativo Azure AD) no Exchange Online, vinculando seu App registrado no Entra ID (Azure AD) ao Exchange. Isso é essencial para que o app possa acessar caixas de correio via OAuth2 (SMTP, IMAP, etc.).
7° - Get-ServicePrincipal
- O comando lista todos os service principals já registrados no Exchange Online, permitindo verificar se o seu foi criado corretamente.
8° - Add-MailboxPermission -Identity "usuario@email.com.br" -User <object_id> -AccessRights FullAccess
- O comando concede ao seu app (identificado pelo ObjectId do service principal) acesso completo à caixa de correio do usuário especificado. Isso permite que o app leia ou envie mensagens.
9° - Add-RecipientPermission -Identity "usuario@email.com.br" -Trustee <object_id> -AccessRights SendAs
- O comando autoriza o app a enviar e-mails como se fosse o próprio usuário (SendAs). Esse passo é obrigatório para que o envio via SMTP OAuth funcione corretamente com o endereço do usuário como remetente. A resposta precisa ser R: A