Solución a: Exim defer (-53): retry time not reached for any host

Es posible que en algunos casos recibamos estos tipos de rechazos al enviar a ciertas direcciones de correos, también podemos verlos en el log de Exim.

¿QUE INDICA ESTE ERROR?

Este error «Exim defer (-53): retry time not reached for any host» indica que Exim ha intentado enviar un correo sin tener éxito. Exim deja el correo en la cola de envíos para intentar nuevamente luego.

Los motivos para que no se entregue el email pueden ser variados, trataremos de abordar los más comunes.

¿CÓMO SE SOLUCIONA?

Lo primero que debemos verificar es que el problema NO sea nuestro.

Muchas veces nuestras IP’s entran en listas negras y son bloqueadas para los envios de correos. Chequeamos que nuestras IP’s no se encuentra en listas negras de SPAM, aca podrás verificarlo: https://mxtoolbox.com/blacklists.aspx

Si alguna de nuestras IP está listada, tendrás la respuesta a tu problema, una vez que soluciones el problema de listado de IP podrás enviar sin problemas.

MI IP ESTÁ LIMPIA, ¿cómo seguimos?

Puede suceder que el servidor destino esté bloqueando nuestras conxiones. Intentaremos ver cuales son los servidores de correo (MX) del servidor destino, esto lo haremos con el comando host

# host outlook.com
outlook.com has address 40.97.148.226
outlook.com has address 40.97.164.146
outlook.com has address 40.97.156.114
outlook.com has address 40.97.161.50
outlook.com has address 40.97.153.146
outlook.com has address 40.97.128.194
outlook.com has address 40.97.160.2
outlook.com mail is handled by 5 outlook-com.olc.protection.outlook.comLenguaje del código: CSS (css)

Ahora que sabemos los MX de nuestro destinatario, podemos controlar si «llegamos» al servidor de correos usando un telnet hacia el MX, con los puertos 25 – 26 y 587

# telnet outlook-com.olc.protection.outlook.com 25
Trying 104.47.46.33...
Connected to outlook-com.olc.protection.outlook.com.
Escape character is '^]'.
220 BN3NAM04FT013.mail.protection.outlook.com Microsoft ESMTP MAIL Service ready at Wed, 30 Oct 2019 22:53:23 +000Lenguaje del código: PHP (php)

En este caso vemos que la comunicación entre nuestro servidor y el destino funcionan OK.

Si el telnet devuelve error en los 3 puertos más comunes 25 26 y 587 seguramente el destinatarios nos tiene bloqueados en su servidor, tendremos que buscar un medio alternativo de contacto y solicitarles que nos ingresen en sus listas blancas tanto nuestro dominio como las IP de nuestro servidor.

EL TELNET ME FUNCIONA, ¿QUE SIGUE?

Exim tiene una base de datos propia donde registra todos los destinatarios que rechazan conexiones. Cuando un dominio rechaza reiteradas veces nuestros emails, exim lo marca en esta base de datos y no intentará enviar el correo en el futuro, directamente lo rechaza.

Esta base de datos puede estar corrupta o bien por un fallo temporal bloquear un dominio destino válido.

Como limpiamos la base de datos de exim?

Para limpiar la DB de Exim tiramos estos comandos:

# /usr/sbin/exim_tidydb -t 1d /var/spool/exim retry > /dev/null
# /usr/sbin/exim_tidydb -t 1d /var/spool/exim reject > /dev/null
# /usr/sbin/exim_tidydb -t 1d /var/spool/exim wait-remote_smtp > /dev/null
# exim_tidydb -t 10m /var/spool/exim retry
# exim_tidydb -t 10m /var/spool/exim wait-remote_smtpLenguaje del código: PHP (php)

Reiniciamos el exim:

# service exim restart Lenguaje del código: PHP (php)

Finalmente solo resta probar enviar un email al destinatario conflictivo.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.