Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Cómo resolver problemas de QMail en linux

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

Explicanos detalladamente cómo resolver problemas de QMail en linux

Resolver problemas en QMail requiere un enfoque diferente al de otros agentes de correo como Postfix o Sendmail. Debido a su arquitectura modular, QMail no utiliza un único archivo de log ni un solo proceso demonio; en su lugar, depende de múltiples binarios independientes, del gestor de servicios daemontools y de registros en formato de tiempo TAI64N.

A continuación se detallan las herramientas, procedimientos de diagnóstico y soluciones a las fallas más comunes en QMail.

1. Inspección de Logs y Estado de Servicios ( daemontools )

Si el sistema utiliza la pila estándar de QMail con daemontools, los servicios se gestionan mediante svstat y svc, y los logs son procesados por multilog.

Verificar el estado de los servicios

Comprueba si los procesos principales están activos y no se están reiniciando en bucle (un PID que cambia constantemente indica que el servicio colapsa al arrancar):

Bash

sudo svstat /service/qmail-send /service/qmail-smtpd

Salida esperada: ... status: up (pid 1234) 300 seconds

Leer los logs formateados (convertir TAI64N)

Los logs almacenados por multilog en /var/log/qmail/ o /var/log/qmail/smtpd/ utilizan marcas de tiempo TAI64N (ej. @4000000062f...). Usa tai64nlocal para convertirlas a hora legible:

Bash

# Ver eventos de la cola de entrega


sudo cat /var/log/qmail/current | tai64nlocal | tail -n 50

# Ver transacciones de recepción SMTP entrante

sudo cat /var/log/qmail/smtpd/current | tai64nlocal | tail -n 50

2. Inspección y Limpieza de la Cola de Correo

QMail no incluye de forma nativa un comando para borrar mensajes individuales de la cola sin romper la estructura de directorios de /var/qmail/queue.

Revisar el estado de la cola

Bash


# Ver recuento total de mensajes en cola

sudo /var/qmail/bin/qmail-qstat

# Ver los remites, destinatarios y tiempo en cola de cada mensaje

sudo /var/qmail/bin/qmail-qread

Administrar la cola con qmHandle

Para manipular mensajes en la cola de forma segura (borrar spam o mensajes atascados), la herramienta estándar recomendada en administración de QMail es qmHandle:

Bash

# Ver mensajes en cola detallados


qmHandle -l

# Borrar un mensaje específico por su ID

qmHandle -d12345

# Borrar TODOS los mensajes atascados en la cola de salida

qmHandle -D

3. Diagnóstico de Errores Frecuentes y Soluciones

Sintoma / Mensaje de ErrorCausa RaízSolución
553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)El dominio de destino no está autorizado para retransmisión (Relay) ni es local.Añade el dominio a /var/qmail/control/rcpthosts. Si el cliente envía correo remoto, verifica que la IP esté permitida en la regla de tcpserver (archivo tcp.smtp).
qq trouble creating files (#4.3.0) o qq crashFallo crítico al escribir en /var/qmail/queue/. Puede ser falta de espacio en disco, agotamiento de inodos o permisos corruptos.Verifica espacio e inodos con df -h y df -i. Si el disco está bien, aplica corrección de permisos en el árbol de colas (ver Sección 4).
unable to read controlsEl binario de QMail no puede leer los archivos dentro de /var/qmail/control/.Ajusta la propiedad de los archivos en /var/qmail/control/ a root:qmail o permisos de lectura global (chmod 644 /var/qmail/control/*).
alert: cannot start: unable to open read/queueqmail-send no puede arrancar porque no tiene acceso al directorio /var/qmail/queue/lock.Corrige la propiedad del directorio lock a los usuarios qmailq/qmails.

4. Resolución de Errores de Dominio y Enrutamiento Local

Cuando un correo no llega a las cajas locales o rebota inesperadamente, el problema casi siempre está en la interacción entre tres archivos del directorio /var/qmail/control/:

me: Debe contener el FQDN exacto del servidor (ej. mail.tudominio.com).

locals: Dominios que QMail procesará como usuarios locales del sistema.
  • Si un dominio está en locals, QMail buscará al usuario en /etc/passwd o en los archivos .qmail del usuario.
rcpthosts: Dominios para los cuales el servidor aceptará recibir correo desde internet.

Regla de oro: Todo dominio listado en locals DEBE estar obligatoriamente en rcpthosts. Si está en rcpthosts pero NO en locals, QMail intentará buscar un servidor MX externo para entregarlo (útil si usas QMail como un gateway/relay SMTP).

Reiniciar el servicio tras modificar la configuración

Cada vez que edites un archivo dentro de /var/qmail/control/, debes notificar a qmail-send mediante daemontools o la señal HUP:

Bash

# Con daemontools:


sudo svc -h /service/qmail-send

# O enviando señal HUP directamente al proceso:

sudo kill -HUP $(pgrep qmail-send)

5. Reparación de Permisos y Propietarios en la Cola (queue-fix)

El sistema de archivos de /var/qmail/queue es extremadamente estricto. Si los permisos de un solo subdirectorio cambian (por un apagón repentino del servidor o una migración manual), QMail dejará de procesar envíos inmediatamente.

Para reparar la estructura de la cola de forma automática se utiliza la utilidad queue-fix:

Bash

# 1. Detener los servicios de QMail para evitar corrupción


sudo svc -d /service/qmail-send /service/qmail-smtpd

# 2. Ejecutar la reparación de permisos e inodos de la cola

sudo queue-fix /var/qmail/queue

# 3. Iniciar nuevamente los servicios

sudo svc -u /service/qmail-send /service/qmail-smtpd

¿Quieres ver cómo configurar la retransmisión de correo (relay) basada en IP mediante tcpserver en QMail?

Ads by CJ - Linux Foundation

Share This