Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Cómo resolver problemas de SendMail en linux

 Le preguntamos a Gemini, la inteligencia artificial de Google, cómo resolver problemas de SendMail en linux

Explicanos detalladamente cómo resolver problemas de SendMail en linux

La resolución de problemas en Sendmail exige diagnosticar tres áreas críticas: la resolución de nombres (FQDN y DNS), la correcta compilación de las macros en /etc/mail/ y la inspección de la cola de procesamiento.

1. Centro de Diagnóstico: Logs y Herramientas CLI

Antes de modificar la configuración, utiliza los comandos de diagnóstico nativos para determinar en qué etapa se interrumpe la entrega.

Archivos de registro de eventos

Debian / Ubuntu: /var/log/mail.log

RHEL / Rocky Linux / AlmaLinux: /var/log/maillog

Monitoreo en tiempo real (systemd):

Bash

sudo journalctl -u sendmail -f -n 100

Comandos de inspección de la cola y enrutamiento

Bash

# Ver los correos atascados en la cola de salida

mailq

# O bien:

sudo sendmail -bp

# Forzar el envío inmediato de la cola mostrando la traza completa (Verbose)

sudo sendmail -q -v

# Probar la resolución y enrutamiento de una dirección sin enviar correo

sendmail -bv usuario@dominio-destino.com

# Entrar en modo de prueba de reglas de enrutamiento de Sendmail

sendmail -bt

2. Errores Comunes y Soluciones Paso a Paso

Error 1: Arranque extremadamente lento de Sendmail (Delay de 30 a 60 segundos)


Síntoma: El comando systemctl restart sendmail o el arranque del sistema se congela durante casi un minuto antes de responder.

Causa: Sendmail intenta realizar una búsqueda DNS inversa sobre la IP local o resolver el Fully Qualified Domain Name (FQDN) antes de levantar el demonio y la consulta falla por timeout.

Solución: Edita /etc/hosts y vincula explícitamente el FQDN a las direcciones de bucle local (127.0.0.1 y ::1):

Plaintext

127.0.0.1           localhost mail.tudominio.com mail

::1                      localhost mail.tudominio.com mail


Confirma que el comando hostname -f devuelva mail.tudominio.com de forma instantánea.

Error 2: "550 5.7.1 Relaying denied"

Síntoma: Un cliente de correo externo o una aplicación web no puede enviar correos a dominios externos a través del servidor.

Causa: La IP de origen no está autorizada como Relay en la base de datos de acceso de Sendmail.

Solución:

Edita el archivo de control de acceso:

Bash

sudo nano /etc/mail/access

Agrega la IP o subred permitida:

Plaintext

Connect:192.168.1.50          RELAY

Connect:10.0.0                     RELAY


Recompila la base de datos hash: (Modificar el archivo plano no surte efecto hasta compilar la base de datos .db):

Bash

sudo makemap hash /etc/mail/access < /etc/mail/access

sudo systemctl restart sendmail


Error 3: Los cambios en sendmail.mc no surten efecto

Síntoma: Editas /etc/mail/sendmail.mc (por ejemplo, para cambiar la IP de escucha o activar TLS), pero el comportamiento del servicio no cambia tras reiniciar.

Causa: Sendmail no lee directamente el archivo .mc. Lee el binario compilado /etc/mail/sendmail.cf.

Solución:
Debes compilar la plantilla de macros m4 antes de reiniciar el servicio:

Bash

cd /etc/mail

sudo make -C /etc/mail


# Si 'make' falla, compila directamente con m4:

sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

sudo systemctl restart sendmail


Error 4: Correos retenidos indefinidamente ("Deferred: Connection timed out")

Síntoma: En mailq aparecen múltiples correos con el estado Deferred y los logs muestran stat=Deferred: Connection timed out with mx.dominio.com.

Causa:

Tu proveedor de nube o ISP bloquea el puerto de salida 25/TCP.

Falta el registro PTR (DNS inverso) en tu IP pública y el receptor rechaza la conexión.

Solución:

Verifica si el puerto 25 saliente está abierto:

Bash

nc -zv mx1.hotmail.com 25

Si el puerto 25 está bloqueado por el ISP, configura un Smart Host (servidor SMTP Relay intermedio) en /etc/mail/sendmail.mc:

Plaintext

define(`SMART_HOST', `smtp.tuproveedor.com')dnl


Recompila con make -C /etc/mail y reinicia Sendmail.

Error 5: Fallos de autenticación SMTP / SASL

Síntoma: Los clientes reciben 535 5.7.0 Authentication failed al intentar enviar correos con usuario y contraseña.

Causa:
El demonio saslauthd está detenido o desconfigurado.

Solución:

Comprueba el estado del servicio SASL:

Bash


sudo systemctl status saslauthd

Asegúrate de que Sendmail tenga permisos para leer el socket de SASL (normalmente localizado en /var/run/saslauthd).

Inicia y habilita el demonio:

Bash


sudo systemctl restart saslauthd

sudo systemctl enable saslauthd


Matriz de Referencia Rápida de Archivos


ArchivoFunción
/etc/mail/sendmail.mcPlantilla de configuración principal en lenguaje m4 (editable).
/etc/mail/sendmail.cfArchivo ejecutable final procesado por Sendmail (no editar manualmente).
/etc/mail/accessTabla de permisos para Relay, rechazos y reglas de bloqueo por IP/dominio.
/etc/mail/local-host-namesLista de dominios que el servidor debe aceptar como entregas locales.
/etc/aliasesTabla de redirección de cuentas de correo locales (requiere ejecutar newaliases tras editar).

¿Quieres migrar la configuración de Sendmail a Postfix manteniendo las mismas reglas de Relay?

Ads by CJ - Linux Foundation

Share This