12 KiB
title, weight, description, keywords
| title | weight | description | keywords | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Microsoft 365 | 16 | Configure SMTP OAuth2 (Microsoft 365) en RustDesk Server Pro para enviar correo a traves de Exchange Online. |
|
Use esta guia para configurar RustDesk Server Pro para enviar correo mediante Microsoft 365 Exchange Online con OAuth2.
Esta configuracion es adecuada para correos de invitacion, verificacion de inicio de sesion por correo y notificaciones de alarma de conexion.
Para la configuracion SMTP general, consulte SMTP.
Que Valores Van en RustDesk Pro?
| Campo de RustDesk Pro | Que introducir |
|---|---|
| From | La direccion del remitente que se muestra en los correos salientes. |
| Mail Account | La direccion del buzon que RustDesk usa como nombre de usuario XOAUTH2 SMTP. |
| OAuth2 Tenant ID | Directory (tenant) ID de la vista general de la aplicacion |
| OAuth2 Client ID | Application (client) ID de la vista general de la aplicacion |
| OAuth2 Client secret | El Value del secreto creado en Certificates & secrets |
Esta captura muestra donde se introducen estos valores en RustDesk:

Configuracion
Antes de empezar esta configuracion, asegurese de tener:
- RustDesk Server Pro
1.8.1o posterior - Un buzon de Microsoft 365 existente, o uno que piense crear para enviar correo, por ejemplo
no-reply@contoso.com - Una cuenta de administrador de Microsoft 365 que pueda conceder admin consent en Microsoft Entra y administrar service principals de Exchange Online
Esta configuracion tiene tres partes:
- Configurar en Azure el registro de la aplicacion, el client secret, el permiso de API y el admin consent
- Configurar en PowerShell el service principal de Exchange Online, el buzon y los permisos
- Configurar SMTP OAuth2 en RustDesk y enviar un correo de prueba
1. Configurar en Azure
- Inicie sesion en el portal de Azure.
- Busque y seleccione App registrations.
- En el menu izquierdo, seleccione App registrations y luego haga clic en New registration.

- Cree el registro de aplicacion.

- Anote
Directory (tenant) IDyApplication (client) ID. Los introducira mas tarde en RustDesk.
- Abra Certificates & secrets y cree un nuevo client secret.

- Copie inmediatamente el
Valuedel secreto. Microsoft solo lo muestra una vez.
- Abra API permissions y agregue el permiso de aplicacion SMTP de Microsoft 365 Exchange Online.
- Seleccione Add a permission.
- Seleccione APIs my organization uses y busque Office 365 Exchange Online.
- Seleccione Application permissions.
- Seleccione SMTP.SendAsApp y guarde el cambio.

- Conceda admin consent al permiso que acaba de agregar.

2. Configurar en PowerShell
En esta parte se conectara a Exchange Online, creara el service principal, preparara el buzon y concedera los permisos.
- Abra PowerShell como administrador local.

- Instale el modulo de Exchange Online y conectese con la cuenta de administrador del inquilino.
Install-Module -Name ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
Si desea especificar la cuenta de administrador de forma explicita, tambien puede usar:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.com
- En Microsoft Entra Enterprise applications, busque la aplicacion y anote su
Object ID. Lo necesitara al crear el service principal de Exchange Online.
{{% notice note %}}
El OBJECT_ID aqui debe ser el object ID de la aplicacion en Enterprise applications, no el object ID que aparece en la pagina de informacion general de App registrations.
{{% /notice %}}
- Ejecute este comando para crear el service principal de Exchange Online para el registro de la aplicacion. La documentacion de Microsoft describe este paso como el registro del service principal de una aplicacion de Microsoft Entra en Exchange Online.
New-ServicePrincipal -AppId <APPLICATION_ID> -ObjectId <OBJECT_ID>
Si este comando falla aunque la conexion a Exchange haya funcionado, verifique que la cuenta de administrador tenga permiso para administrar service principals de Exchange Online.

- Confirme que Exchange ha creado el service principal y anote su valor
Identitypara los pasos siguientes.
Get-ServicePrincipal | Format-Table DisplayName,AppId,ObjectId,Identity
Use el valor Identity devuelto aqui como <SERVICE_PRINCIPAL_ID> en los dos comandos de permisos siguientes.
- Si el buzon de envio todavia no existe, puede crear primero un shared mailbox, por ejemplo:
New-Mailbox -Shared -Name "No Reply" -Alias no-reply -DisplayName "No Reply" -PrimarySmtpAddress no-reply@contoso.com
Si ya tiene un buzon para el envio de correo, puede omitir este paso.

- Compruebe si
Authenticated SMTPesta habilitado para el inquilino y para el buzon de envio.
Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled
Get-CASMailbox -Identity "no-reply@contoso.com" | Format-List SmtpClientAuthenticationDisabled
Si no esta habilitado, los correos de prueba pueden fallar con este error:
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 la configuracion a nivel de buzon, ejecute esto si es necesario:
Set-CASMailbox -Identity "no-reply@contoso.com" -SmtpClientAuthenticationDisabled $false
Si la configuracion a nivel de inquilino devuelve True, decida segun la politica de su organizacion si debe ejecutar:
Set-TransportConfig -SmtpClientAuthenticationDisabled $false
Si la configuracion del inquilino y del buzon parece correcta pero el mismo error 535 5.7.139 continua, compruebe tambien si el inquilino usa Microsoft Entra Security defaults. Microsoft Learn indica que SMTP AUTH esta deshabilitado en Exchange Online cuando Security defaults esta habilitado.
Para los detalles de los comandos, consulte Microsoft Learn: Enable or disable authenticated client SMTP submission (SMTP AUTH) in Exchange Online.
- Conceda al service principal de Exchange
FullAccessal buzon que RustDesk usara para enviar correo.
Add-MailboxPermission -Identity "no-reply@contoso.com" -User <SERVICE_PRINCIPAL_ID> -AccessRights FullAccess
Use aqui el buzon que piensa introducir en Mail Account de RustDesk.
Si este comando devuelve un error 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'.
significa que el valor pasado a -Identity no se resolvio como un objeto de buzon real en Exchange Online.
Primero confirme que el buzon realmente existe en Exchange Online:
Get-EXOMailbox -Identity "no-reply@xxx.com" | Format-List DisplayName,PrimarySmtpAddress,RecipientTypeDetails
Si no se devuelve ningun buzon, cree o confirme primero ese buzon. Para una direccion de remitente no-reply, puede crear un shared mailbox, por ejemplo:
New-Mailbox -Shared -Name "No Reply" -Alias no-reply -DisplayName "No Reply" -PrimarySmtpAddress no-reply@xxx.com
Si el buzon ya existe, asegurese de que el valor usado en Add-MailboxPermission -Identity ... sea la direccion real del buzon, su alias u otra identidad de buzon que Exchange pueda resolver.

- Conceda al mismo service principal el permiso
SendAs.
Add-RecipientPermission -Identity "no-reply@contoso.com" -Trustee <SERVICE_PRINCIPAL_ID> -AccessRights SendAs -Confirm:$false
Este paso tambien forma parte de la configuracion oficial de SMTP app-only de Microsoft.
3. Configurar en RustDesk
En este punto ya deberia tener:
- la direccion del remitente que usara en
From - la direccion del buzon que usara en
Mail Account - el
Directory (tenant) ID - el
Application (client) ID - el
Valuedel client secret - un service principal de Exchange Online confirmado que ya tenga
FullAccessySendAssobre el buzon usado enMail Account
RustDesk no solicita la Identity del service principal de Exchange, pero los pasos de permisos anteriores deben completarse antes de probar el correo.
-
En la consola web de RustDesk, vaya a Settings -> SMTP.
-
Habilite OAuth2 y seleccione Microsoft 365 como proveedor.
-
Rellene estos campos:
FromMail AccountOAuth2 Tenant IDOAuth2 Client IDOAuth2 Client secret
-
Haga clic en Check para guardar la configuracion y enviar un correo de prueba.

Si la prueba de correo sigue fallando, vuelva a la seccion de PowerShell y revise otra vez el service principal de Exchange Online, Authenticated SMTP y los permisos del buzon usado en Mail Account.
Referencias
- Microsoft Learn: Authenticate an IMAP, POP or SMTP connection using OAuth. Se usa para los pasos de permisos de aplicacion y service principal de Exchange Online.
- Microsoft Learn: Enable or disable authenticated client SMTP submission (SMTP AUTH) in Exchange Online. Se usa para comprobar y habilitar
Authenticated SMTP. - Microsoft Learn: Create shared mailboxes in the Exchange admin center. Se usa para crear un shared mailbox.
