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 linuxResolver 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
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.
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?