18.11. Pistas y Trucos

Hay varias cosas que se pueden hacer para que la gestión de un sitio sendmail sea eficiente. Se proporcionan varias herramientas en el paquete sendmail; echemos un vistazo a las más importantes de éstas.

18.11.1. Gestión de la Cola de Correo

El correo es encolado en el directorio /var/spool/mqueue antes de ser transmitido. Este directorio se llama la cola de correo[1]. El programa sendmailproporciona un método para mostrar una lista formateada de todos los mensajes de correo en la cola y su estado.

La orden /usr/bin/mailq es un enlace simbólico al ejecutable de sendmail y se comporta idénticamente a:
    # sendmail -bp
La salida muestra el identificador del mensaje (ID), su tamaño, la hora en que fue colocado en la cola, quién lo envió y un mensaje indicando su estado actual. El siguiente ejemplo muestra un mensaje de correo atascado en la cola con un problema:
    $ mailq
                    Mail Queue (1 request)
    --Q-ID-- --Size-- -----Q-Time----- ------------Sender/Recipient------------
    RAA00275      124 Wed Dec  9 17:47 root
                     (host map: lookup (tao.linux.org.au): deferred)
                                       terry@tao.linux.org.au
Este mensaje está todavía en la cola de correo porque la dirección IP del anfitrión de destino no se ha podido resolver.

Podemos forzar sendmail para procesar la cola ahora mediante la instrucción /usr/bin/runq.

La orden runq no produce ninguna salida. sendmail comenzará procesando la cola de correo en segundo plano.

18.11.2. Forzar a un Anfitrión Remoto a Procesar su Cola de Correo

Si usa una conexión a Internet temporal mediante marcado telefónico con una dirección IP fija y delega en un anfitrión MX para recibir su correo mientras está desconectado, encontrará útil forzar al anfitrión MX para que procese su cola de correo tan pronto como se establezca una conexión

Un pequeño programa perl se incluye con la distribución de sendmail que hace esto simple para los anfitriones de correo que lo soportan. El guión etrn tiene como mucho el mismo efecto en un anfitrión remoto como la instrucción runq tiene en el nuestro. Si invocamos la orden como se indica en este ejemplo:
    # etrn vstout.vbrew.com
forzaremos al anfitrión vstout.vbrew.com que procese cualquier correo en espera para nuestra máquina local.

Típicamente añadiría esta instrucción al guión PPP ip-up de manera que se ejecute tan pronto como la conexión de red sea establecida.

18.11.3. Análisis de las Estadísticas de Correo

sendmail almacena datos de los volúmenes de tráfico de correo y alguna información sobre los anfitriones a los cuáles ha entregado correo. Hay dos instrucciones disponibles para mostrar esta información, mailstats, y hoststat.

18.11.3.1. mailstats

La orden mailstats muestra estadísticas del volumen de correo procesado por sendmail. La hora a la que la recogida de datos comenzó se imprime primero, seguida de una tabla con una columna para cada transporte configurado y una mostrando un resumen total de todo el correo. Cada línea presenta ocho puntos de información:

Un ejemplo de la salida de la orden mailstats se muestra en Ejemplo 18-5.

Estos datos son recogidos si la opción StatusFile está activada en el fichero sendmail.cf y el fichero de estado existe. Típicamente añadiría lo siguiente a su fichero sendmail.cf:
    # status file
    O StatusFile=/var/log/sendmail.st

Para reiniciar la recogida de estadísticas, necesita hacer el fichero de estadísticas de longitud cero:
    > /var/log/sendmail.st
y reiniciar sendmail.

18.11.3.2. Hoststat

La instrucción hoststat muestra información sobre el estado de los anfitriones a los que sendmail ha intentado enviar correo. La instrucción hoststat es equivalente a invocar sendmail como:
    sendmail -bh

La salida presenta cada anfitrión en su propia línea, y para cada uno la hora desde que se intentó la entrega a él, y el mensaje de estado recibido a esa hora.

Ejemplo 18-6 muestra la clase de salida que podría esperarse de la instrucción hoststat. Nótese que la mayor parte de los resultados indican una entrega exitosa. El resultado para earthlink.net, por otra parte, indica que la entraga no fue exitosa. El mensaje de estado puede algunas veces ayudar a determinar la causa del fallo. En este caso, la conexión expiró, probablemente porque el anfitrión estaba caído o inalcanzable a la hora en que la entrega se intentó.

La instrucción purgestat vacía los datos del anfitrión recogidos y es equivalente a invocar sendmail como:
    # sendmail -bH

Las estadísticas continuarán creciendo hasta que usted las purge. Quizá quiera ejecutar periódicamente la instrucción purgestat para hacer más fácil buscar y encontrar entradas recientes, especialmente si tiene un sitio con mucho tráfico. Podría poner la orden en un fichero crontab para que se ejecute automáticamente, o tan sólo hacerlo usted mismo ocasionalmente.

Notas

[1]

mail spool