12 KiB
title, weight, description, keywords
| title | weight | description | keywords | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Microsoft 365 | 16 | Configure SMTP OAuth2 (Microsoft 365) no RustDesk Server Pro para enviar e-mails pelo Exchange Online. |
|
Use este guia para configurar o RustDesk Server Pro para enviar e-mails pelo Microsoft 365 Exchange Online com OAuth2.
Esta configuracao e adequada para e-mails de convite, e-mails de verificacao de login e notificacoes de alerta de conexao.
Para a configuracao SMTP geral, consulte SMTP.
Quais Valores Inserir no RustDesk Pro?
| Campo do RustDesk Pro | O que inserir |
|---|---|
| From | O endereco do remetente exibido nos e-mails enviados. |
| Mail Account | O endereco da caixa de correio que o RustDesk usa como nome de usuario XOAUTH2 SMTP. |
| OAuth2 Tenant ID | Directory (tenant) ID na visao geral do aplicativo |
| OAuth2 Client ID | Application (client) ID na visao geral do aplicativo |
| OAuth2 Client secret | O Value do secret criado em Certificates & secrets |
Esta captura mostra onde esses valores sao inseridos no RustDesk:

Configuracao
Antes de iniciar esta configuracao, verifique se voce tem:
- RustDesk Server Pro
1.8.1ou posterior - Uma caixa de correio Microsoft 365 existente, ou uma que voce pretende criar para envio, por exemplo
no-reply@contoso.com - Uma conta de administrador do Microsoft 365 que possa conceder admin consent no Microsoft Entra e gerenciar service principals do Exchange Online
Esta configuracao tem tres partes:
- Configurar no Azure o registro do aplicativo, o client secret, a permissao de API e o admin consent
- Configurar no PowerShell o service principal do Exchange Online, a caixa de correio e as permissoes
- Configurar SMTP OAuth2 no RustDesk e enviar um e-mail de teste
1. Configuracao no Azure
- Entre no portal do Azure.
- Procure e selecione App registrations.
- No menu esquerdo, selecione App registrations e clique em New registration.

- Crie o registro do aplicativo.

- Anote
Directory (tenant) IDeApplication (client) ID. Voce os informara depois no RustDesk.
- Abra Certificates & secrets e crie um novo client secret.

- Copie imediatamente o
Valuedo secret. A Microsoft mostra esse valor apenas uma vez.
- Abra API permissions e adicione a permissao de aplicativo SMTP do Microsoft 365 Exchange Online.
- Selecione Add a permission.
- Selecione APIs my organization uses e procure Office 365 Exchange Online.
- Selecione Application permissions.
- Selecione SMTP.SendAsApp e salve a alteracao.

- Conceda admin consent para a permissao que voce acabou de adicionar.

2. Configuracao no PowerShell
Nesta parte, voce vai se conectar ao Exchange Online, criar o service principal, preparar a caixa de correio e conceder as permissoes.
- Abra o PowerShell como administrador local.

- Instale o modulo do Exchange Online e conecte-se com a conta de administrador do tenant.
Install-Module -Name ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
Se quiser especificar explicitamente a conta de administrador, voce tambem pode usar:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.com
- Em Microsoft Entra Enterprise applications, encontre o aplicativo e anote o
Object ID. Voce precisara dele ao criar o service principal do Exchange Online.
{{% notice note %}}
O OBJECT_ID aqui deve ser o object ID do aplicativo em Enterprise applications, e nao o object ID mostrado na pagina de visao geral de App registrations.
{{% /notice %}}
- Execute este comando para criar o service principal do Exchange Online para o registro do aplicativo. A documentacao da Microsoft descreve esta etapa como o registro do service principal de um aplicativo do Microsoft Entra no Exchange Online.
New-ServicePrincipal -AppId <APPLICATION_ID> -ObjectId <OBJECT_ID>
Se este comando falhar mesmo com a conexao ao Exchange funcionando, verifique se a conta de administrador tem permissao para gerenciar service principals do Exchange Online.

- Confirme que o Exchange criou o service principal e anote o valor
Identitypara as proximas etapas.
Get-ServicePrincipal | Format-Table DisplayName,AppId,ObjectId,Identity
Use o valor Identity retornado aqui como <SERVICE_PRINCIPAL_ID> nos dois comandos de permissao seguintes.
- Se a caixa de correio de envio ainda nao existir, voce pode criar primeiro uma shared mailbox, por exemplo:
New-Mailbox -Shared -Name "No Reply" -Alias no-reply -DisplayName "No Reply" -PrimarySmtpAddress no-reply@contoso.com
Se voce ja tiver uma caixa de correio para envio, pode pular esta etapa.

- Verifique se
Authenticated SMTPesta habilitado para o tenant e para a caixa de correio de envio.
Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled
Get-CASMailbox -Identity "no-reply@contoso.com" | Format-List SmtpClientAuthenticationDisabled
Se nao estiver habilitado, os e-mails de teste podem falhar com este erro:
permanent error (535): 5.7.139 Authentication unsuccessful, SmtpClientAuthentication is disabled for the Tenant. Visit https://aka.ms/smtp_auth_disabled for more information.
Para a configuracao no nivel da caixa de correio, execute isto se necessario:
Set-CASMailbox -Identity "no-reply@contoso.com" -SmtpClientAuthenticationDisabled $false
Se a configuracao no nivel do tenant retornar True, decida de acordo com a politica da sua organizacao se deve executar:
Set-TransportConfig -SmtpClientAuthenticationDisabled $false
Se as configuracoes do tenant e da caixa de correio parecerem corretas, mas o mesmo erro 535 5.7.139 continuar, verifique tambem se o tenant usa Microsoft Entra Security defaults. O Microsoft Learn informa que o SMTP AUTH fica desabilitado no Exchange Online quando Security defaults esta habilitado.
Para detalhes dos comandos, consulte Microsoft Learn: Enable or disable authenticated client SMTP submission (SMTP AUTH) in Exchange Online.
- Conceda ao service principal do Exchange
FullAccessa caixa de correio que o RustDesk usara para enviar e-mails.
Add-MailboxPermission -Identity "no-reply@contoso.com" -User <SERVICE_PRINCIPAL_ID> -AccessRights FullAccess
Use aqui a caixa de correio que voce pretende informar em Mail Account no RustDesk.
Se este comando retornar um erro como este:
Write-ErrorMessage : ||The operation couldn't be performed because object 'no-reply@xxx.com' couldn't be found on 'xxx.xxx.PROD.OUTLOOK.COM'.
isso significa que o valor passado para -Identity nao foi resolvido como um objeto real de caixa de correio no Exchange Online.
Primeiro confirme se a caixa de correio realmente existe no Exchange Online:
Get-EXOMailbox -Identity "no-reply@xxx.com" | Format-List DisplayName,PrimarySmtpAddress,RecipientTypeDetails
Se nenhuma caixa de correio for retornada, crie ou confirme essa caixa primeiro. Para um endereco remetente no-reply, voce pode criar uma shared mailbox, por exemplo:
New-Mailbox -Shared -Name "No Reply" -Alias no-reply -DisplayName "No Reply" -PrimarySmtpAddress no-reply@xxx.com
Se a caixa de correio ja existir, verifique se o valor usado em Add-MailboxPermission -Identity ... e o endereco real da caixa, o alias ou outra mailbox identity que o Exchange consiga resolver.

- Conceda ao mesmo service principal a permissao
SendAs.
Add-RecipientPermission -Identity "no-reply@contoso.com" -Trustee <SERVICE_PRINCIPAL_ID> -AccessRights SendAs -Confirm:$false
Esta etapa tambem faz parte da configuracao oficial de SMTP app-only da Microsoft.
3. Configuracao no RustDesk
Neste ponto, voce ja deve ter:
- o endereco remetente que usara em
From - o endereco da caixa de correio que usara em
Mail Account - o
Directory (tenant) ID - o
Application (client) ID - o
Valuedo client secret - um service principal do Exchange Online confirmado, que ja tenha
FullAccesseSendAssobre a caixa de correio usada emMail Account
O RustDesk nao solicita a Identity do service principal do Exchange, mas as etapas de permissao acima ja precisam estar concluidas antes de testar o envio.
-
Na console web do RustDesk, acesse Settings -> SMTP.
-
Ative OAuth2 e selecione Microsoft 365 como provedor.
-
Preencha estes campos:
FromMail AccountOAuth2 Tenant IDOAuth2 Client IDOAuth2 Client secret
-
Clique em Check para salvar a configuracao e enviar um e-mail de teste.

Se o e-mail de teste ainda falhar, volte para a secao do PowerShell e confira novamente o service principal do Exchange Online, Authenticated SMTP e as permissoes da caixa de correio usada em Mail Account.
Referencias
- Microsoft Learn: Authenticate an IMAP, POP or SMTP connection using OAuth. Usado para as etapas de permissao de aplicativo do Exchange Online e de service principal.
- Microsoft Learn: Enable or disable authenticated client SMTP submission (SMTP AUTH) in Exchange Online. Usado para verificar e habilitar
Authenticated SMTP. - Microsoft Learn: Create shared mailboxes in the Exchange admin center. Usado para criar uma shared mailbox.
