Problemas al enviar correos mediante SMTP con Microsoft 365 y autenticación moderna

Modificado el Mar, 22 Abr a 11:31 A. M.

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

  1. Accede al centro de administración de Exchange: https://admin.exchange.microsoft.com/
  2. Ve a Flujo de correo > Configuración del flujo de correo
  3. 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)

  1. Ir a: https://mysignins.microsoft.com/security-info
  2. Seleccionar “Agregar método” > Contraseña de aplicación
  3. Nombrarla (ej. “Integración SMTP”)
  4. 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

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo