Problemas al enviar correos mediante SMTP con Microsoft 365 y autenticación moderna
¿Qué ocurre?
Muchos programas externos (ERPs, CRMs, gestores documentales, etc.) permiten integrar cuentas de correo Microsoft 365 para enviar y recibir emails. En algunos casos:
- La autenticación moderna (OAuth) se realiza correctamente.
- Se puede recibir correo sin problema.
- Pero al intentar enviar correos por SMTP, el envío falla.
¿Por qué pasa esto?
Microsoft 365 no permite el uso de SMTP con autenticación moderna (OAuth 2.0) en la mayoría de aplicaciones de terceros.
Esto significa que, aunque el software pueda iniciar sesión correctamente para recibir (IMAP), el envío por SMTP sigue dependiendo de:
- Autenticación básica (usuario y contraseña), o
- Una contraseña de aplicación si hay verificación en dos pasos.
Además, por defecto Microsoft puede tener desactivado el uso de SMTP AUTH, lo que hace que cualquier intento de enviar falle, aunque las credenciales sean correctas.
✅ Solución completa paso a paso
Paso 1: Verificar la configuración global de SMTP AUTH en la organización
- Accede al centro de administración de Exchange: https://admin.exchange.microsoft.com/
- Ve a Flujo de correo > Configuración del flujo de correo
- Asegúrate de que la opción “Desactivar el protocolo SMTP AUTH para su organización” NO esté marcada
✅ Si NO está marcada, SMTP AUTH está permitido globalmente (correcto).
❌ Si está marcada, ningún usuario podrá usar SMTP, aunque se habilite individualmente.
Paso 2: Conectarse a PowerShell de Exchange Online
Requisitos previos
- PowerShell 5.1 o superior
- Permisos de administrador global o de Exchange
- Acceso a Internet
- Tener instalado el módulo
ExchangeOnlineManagement
Preparar el entorno
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -UserPrincipalName tu_admin@tudominio.com
Sustituye tu_admin@tudominio.com
por un usuario con permisos de administración. Se abrirá una ventana de login de Microsoft 365.
Paso 3: Habilitar SMTP AUTH para la cuenta específica
Set-CASMailbox -Identity cuenta@tudominio.com -SmtpClientAuthenticationDisabled $false
Verificación:
Get-CASMailbox -Identity cuenta@tudominio.com | Select SmtpClientAuthenticationDisabled
Debe mostrar: False
Paso 4: Crear una contraseña de aplicación (si tienes MFA)
- Ir a: https://mysignins.microsoft.com/security-info
- Seleccionar “Agregar método” > Contraseña de aplicación
- Nombrarla (ej. “Integración SMTP”)
- Copiar y pegar esa contraseña en el software como si fuera la normal
⚙️ Configuración SMTP estándar para Microsoft 365
- Servidor SMTP: smtp.office365.com
- Puerto: 587
- Cifrado: STARTTLS
- Usuario: dirección de correo completa
- Contraseña: contraseña normal o contraseña de aplicación
Comprobación de conectividad
Puedes comprobar que el equipo tiene salida por el puerto 587:
Test-NetConnection smtp.office365.com -Port 587
Recomendaciones de seguridad
- Habilita SMTP AUTH solo para cuentas necesarias.
- Evita activarlo a nivel global salvo que sea imprescindible.
- Considera usar una cuenta técnica con permisos limitados solo para integraciones.
- Si el software permite usar Microsoft Graph API, es una opción más segura y moderna (requiere desarrollo).
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo