Error de autenticación SMTP 535 5.7.139 en Hotmail: solución definitiva para msmtp y Neomutt

¿Tu cuenta principal de Hotmail dejó de enviar mensajes con msmtp + Neomutt y te lanza “535 5.7.139 Authentication unsuccessful, account locked”? Tranquilo: a continuación encontrarás un procedimiento probado —y preparado para los futuros cambios de Microsoft— que restaura el envío y evita que el fallo vuelva a aparecer.

Índice

Significado real del error “535 5.7.139”

El código 535 es una respuesta SMTP genérica de fallo de autenticación; el sub‑código 5.7.139 es propio de Microsoft 365/Outlook.com y denota que la cuenta ha sido temporalmente bloqueada después de repetidos intentos fallidos o de un acceso considerado “inseguro”. En otras palabras:

  • Tu usuario y contraseña (o contraseña de aplicación) son correctos.
  • El servidor percibe la conexión como “básica” y, por política, la descarta.
  • El bloqueo se levanta solo, pero vuelve tras pocos envíos porque la causa raíz persiste.

Aislar la causa: por qué solo falla la combinación msmtp + Neomutt

Antes de aplicar correcciones, verifica estos puntos para descartar factores externos:

PruebaResultado esperadoConclusión
Enviar desde Outlook.com webÉxitoCredenciales y cuenta correctas
Enviar desde Outlook for Windows / macOSÉxitoOAuth funciona → bloqueo focalizado
Enviar la segunda cuenta Hotmail con msmtpÉxitoEl problema se limita a la primera cuenta
VPN / red móvil diferenteFalla igualNo es un bloqueo por IP

Resultado: el gatillo es la autenticación básica del par msmtp → Hotmail en esa cuenta concreta. Microsoft endurece la seguridad de forma gradual, así que puede afectar a unas cuentas antes que a otras.

Solución rápida y estable: usar un alias de Outlook.com

Crear un alias dentro de la misma bandeja de entrada y configurarlo en msmtp evita el bloqueo porque el alias se procesa como “identidad nueva” y reinicia los contadores de seguridad. Funciona incluso si el alias usa el mismo dominio @outlook.com o @hotmail.com.

Paso a paso

  1. En el portal de Outlook.com → Configuración → Correo → Sincronización de correo electrónico → Alias, pulsa “Agregar alias” y elige un nombre.
  2. Genera una contraseña de aplicación específica para “Envío de correo SMTP”.
  3. Edita ~/.msmtprc (o el fichero que uses) así:
account hotmail-alias
host smtp.office365.com
port 587
auth login
user alias_nuevo@outlook.com
password tucontraseñade_app
tls on
tls_starttls on
from alias_nuevo@outlook.com
logfile ~/.msmtp.log

Guarda y otorga permisos chmod 600 ~/.msmtprc. En Neomutt, referencia esta cuenta o bien exporta sendmail="msmtp -a hotmail-alias".

¿Por qué funciona el alias y cuánto durará?

Un alias delega el envío a la misma bandeja, pero Microsoft lo “ve” como una entidad sin historial de fallos. Mientras la autenticación siga siendo básica, el alias permanecerá operativo. Sin embargo, Microsoft ha anunciado la retirada definitiva de la autenticación básica para cuentas personales en fases que culminarán a finales de 2026. Por ello, considera el alias una solución interina.

Alternativa provisional: regenerar periódicamente la contraseña de aplicación

Si no quieres usar un alias, puedes:

  • Eliminar la contraseña de aplicación anterior.
  • Crear una nueva con ámbito “Envío de correo” (reduce el riesgo).
  • Actualizar .msmtprc.

Funciona, pero el bloqueo reaparecerá porque la causa subyacente —la falta de OAuth— sigue presente.

Solución a largo plazo: adoptar OAuth / XOAUTH2

msmtp incorporó soporte experimental de auth oauthbearer en la versión 1.9.0 y es totalmente estable desde 1.10. Los pasos generales son:

  1. Actualizar msmtp con tu gestor de paquetes (pacman -S msmtp, apt install msmtp-mta, etc.).
  2. Instalar la utilidad oauth2ms o msmtp-oauth2-proxy para obtener y renovar tokens.
  3. Registrar la aplicación “SMTP client” en el Portal de Azure (tipo “Cuentas personales Microsoft”).
  4. Anotar los valores clientid y tenantid.
  5. Crear un fichero ~/.config/msmtp/oauth2.cfg con:
[outlook]
clientid = TUCLIENT_ID
tenant = consumers
refreshtoken = TUREFRESH_TOKEN

Ejemplo completo de ~/.msmtprc con OAuth

account hotmail-oauth
host smtp.office365.com
port 587
auth oauthbearer
user tu_usuario@outlook.com
passwordeval "oauth2ms smtp --config ~/.config/msmtp/oauth2.cfg --user tu_usuario@outlook.com"
tls on
tls_starttls on
from tu_usuario@outlook.com
logfile ~/.msmtp.log

El comando oauth2ms smtp genera el Bearer Token al vuelo, de modo que no se almacena en disco. El refresh token se renueva automáticamente sin tu intervención.

Ventajas adicionales de OAuth

  • Elimina la necesidad de contraseñas de aplicación.
  • Previene bloqueos 535 porque la autenticación es considerada “moderna”.
  • Permite revocar tokens desde el panel de Microsoft sin cambiar la clave principal.
  • Es compatible con MTA intermedios (Postfix) que llamen a msmtp como transport.

Buenas prácticas para maximizar la fiabilidad

Aplica estas recomendaciones, ya uses alias, contraseña de aplicación u OAuth:

PrácticaDescripción
Evitar reintentos automáticosConfigura Neomutt para no reenviar en bucle; cada fallo suma al contador de Microsoft.
Registrar la hora UTC de cada envíoCon la opción set sendmail_wait=-1 y msmtp --syslog localizas el momento exacto de un bloqueo.
Usar tlstrustfileIncluye certificados raíz actualizados para prevenir errores de TLS que a veces se confunden con 535.
Separar logs por cuentaDefine logfile ~/.msmtp.%a.log; facilita depuración cuando manejas varias identidades.

Calendario estimado de la retirada de autenticación básica

Aunque Microsoft pospuso fechas varias veces, el itinerario público más reciente para cuentas personales (Hotmail/Outlook.com) es:

  • abril 2024 – deshabilitación para “usuarios de muy alto riesgo”.
  • enero 2025 – bloqueo intermitente para todos los usuarios que sigan usando SMTP AUTH básica.
  • finales 2026 – apagado definitivo salvo excepciones justificadas (accesibilidad, cuentas infantiles, etc.).

Mantente atento al Microsoft 365 Roadmap ID 125984 y a los comunicados desde la bandeja de entrada (remitente no-reply@microsoft.com).

Preguntas frecuentes

  • ¿Puedo seguir usando el puerto 25 sin TLS? No. Outlook.com exige starttls en 587; el puerto 25 está capado para cuentas personales.
  • ¿Funciona XOAUTH2 con cuentas antiguas @hotmail.es? Sí, mientras estén migradas a la infraestructura Outlook.com —lo están desde 2017.
  • ¿Necesito un servidor IMAP aparte? No, OAuth se negocia igualmente para imap-mail.outlook.com si lo configuras.
  • ¿Qué ocurre si uso un alias como remitente pero respondo desde la web? Outlook.com muestra ambas direcciones y permite elegir; no rompe el DKIM/DMARC.
  • ¿Y si mi distribución no empaqueta msmtp ≥ 1.10? Compílalo desde el código fuente o usa un paquete flatpak/snap; el binario ocupa apenas 400 kB.

Conclusión

El error “535 5.7.139 Authentication unsuccessful, account locked” es la forma en que Microsoft empuja a abandonar la autenticación básica. Mientras adoptas OAuth, dos vías aseguran el envío estable con msmtp + Neomutt:

  1. Crear un alias y usarlo en lugar de la dirección principal.
  2. Regenerar contraseñas de aplicación limitadas al envío (opción menos duradera).

La solución definitiva es compilar o actualizar msmtp con soporte OAuth 2.0 / XOAUTH2 y registrar tu propio “SMTP client” en Azure: se acabaron los bloqueos y tus credenciales estarán alineadas con las políticas de seguridad que regirán a partir de 2026. ¡Manos a la obra y corre la voz para que otros usuarios de clientes de consola no se queden sin correo!

Índice