Archivo categoría Qmail

multilog: fatal: unable to lock directory … temporary failure

Un error típico de Qmail al iniciarlo o reiniciarlo:

multilog: fatal: unable to lock directory /var/log/qmail/: temporary failure
multilog: fatal: unable to lock directory /var/log/qmailsmtp/: temporary failure

Una solución sencilla para solucionarlo:

# paramos el servicio.
/etc/init.d/qmail stop

# buscamos el proceso que está bloqueado.
ps -ef |grep qmail

# matamos el proceso relacionado.
kill -9 numero-proceso

# volvemos a iniciar el servicio.
/etc/init.d/qmail start

, , , , ,

No hay Comentarios

Monitorizando nuestras cuentas de correo y envio de alertas a nuestro email.

He creado este pequeño shell script que nos permitirá monitorizar todas las cuentas de correo de nuestros dominios. Para ello solo debemos indicarle unos pequeños parámetros y los límites en los que deseamos que nos envíe un reporte con una alerta.

# DATOS
FECHA=$(date +"%m-%d-%Y")
SERVIDOR=$(/usr/bin/hostname)
MAIL=/home/vpopmail/domains
REPORTE=/home/reporte.txt
EMAIL=su@correo.com
USUARIO=vpopmail # usuario de las cuentas de correo
ALERTA_DOMINIO=100 # espacio en mb
ALERTA_CUENTA=50 # espacio en mb

echo "Fecha: $FECHA" >>$REPORTE
echo "Limite dominio: $ALERTA_DOMINIO mb" >>$REPORTE
echo "Limite cuenta correo: $ALERTA_CUENTA mb" >>$REPORTE
echo "----------------------------------------------------" >>$REPORTE
for DOMINIO in `ls -l $MAIL | grep $USUARIO | awk {'print $9'}`
do
   USO_DOMINIO=`du -sm $MAIL/$DOMINIO | awk {'print $1'}`
   TOTAL=$[TOTAL+=$USO_DOMINIO]
   if [ $USO_DOMINIO -ge $ALERTA_DOMINIO ]; then
      echo "* $DOMINIO $USO_DOMINIO mb" >>$REPORTE
   fi
   for CUENTA in `ls -l $MAIL/$DOMINIO | awk {'print $9'}`
   do
      USO_CUENTA=`du -sm $MAIL/$DOMINIO/$CUENTA | awk {'print $1'}`
      if [ $USO_CUENTA -ge $ALERTA_CUENTA ]; then
         echo "$CUENTA@$DOMINIO $USO_CUENTA mb" >>$REPORTE
      fi
   done
done

echo "---------------------------------------------------" >>$REPORTE
echo "Total Ocupado: $TOTAL mb" >>$REPORTE
mail -s "Alerta Mail - $SERVIDOR - $FECHA" $EMAIL <$REPORTE
rm -f $REPORTE

* Este shell script ha sido probado en Gentoo y Fedora.

Por último solo debemos incluirlo en nuestro crontab para que se ejecute diariamente. En Gentoo es relativamente sencillo por lo que le podemos indicar que lo ejecute diariamente.

crontab -e
# incluimos la siguiente linea en nuestro contab.
@daily /home/scripts/monitor-correo.sh
# por último le damos permisos de ejecución.
chmod 744 /home/scripts/monitor-correo.sh

, , , , , , , ,

No hay Comentarios

Gestionar la cola de correo de Qmail con qmHandle

qmHandle es un programa escrito en Perl que nos permitirá ver y gestionar las colas de QMAIL.  Muestra estadísticas, imprime y borra mensajes, etc …

wget http://optusnet.dl.sourceforge.net/sourceforge/qmhandle/qmhandle-1.3.0.tar.gz
tar -xzvf qmhandle-1.3.0.tar.gz
cd qmhandle-1.3.0
cp qmHandle /usr/bin/

Por defecto viene configurado para ser utilizado con daemontools por lo que he tenido que editar el script y descomentar las siguientes lineas para que pare y reinicie Qmail correctamente.

my ($stopqmail) = '/etc/init.d/qmail stop';
my ($startqmail) = '/etc/init.d/qmail start';

Página Web Oficial

, , , , ,

No hay Comentarios

Qmail, queue-repair, warning: unable to stat mess

Cuando monitorizamos en tiempo real el log de mensajes del QMAIL este podría mostrar errores al acceder a la cola de mensajes. Este error puede ser provocado por falta de espacio, la cola de correo esta dañada o con errores, etc …

tail -f /var/log/qmail/current

Uno de los errores más comunes es tener la cola de correo dañada y por lo tanto recibiremos el siguiente error  cada vez que recibamos correos en nuestras cuentas …

... warning: unable to stat mess/0/0

... warning: unable to stat mess/1/1
... warning: unable to stat mess/1/2
...
... warning: unable to stat mess/22/22

Una de las soluciones que encontré para rehacer la cola del qmail fué instalar queue-repair. Es un script muy útil para reparar las colas de correo, recreear la estructura de directorios de esta ó solucionar una cola dañada. Para poder usar queue-repair necesitaremos tener instalado Python 1.5.2 o superior y sobre todo estar utilizando Qmail.

//Descargamos queue-repair a nuestro directorio de trabajo
wget http://pyropus.ca/software/queue-repair/queue-repair-0.9.0.tar.gz
//Descomprimimos y desempaquetamos el archivo descargado.
tar xfz queue-repair-0.9.0.tar.gz
cd queue-repair-0.9.0
//Paramos el Qmail para evitar errores.
/etc/init.d/qmail stop
./queue_repair.py -c -s 23 --no-bigtodo /var/qmail
//Volvemos a iniciar el Qmail
/etc/init.d/qmail start
//procedemos a comprobar la cola de correo
/var/qmail/bin/qmail-qread

Continuar leyendo “Qmail, queue-repair, warning: unable to stat mess”

, , , , , ,

No hay Comentarios

Qmail+Procmail+SpamAssassin+Qmail-Scanner en Gentoo Linux

Basándome en la guías de OVH y otra documentación he creado esta pequeña ayuda para poder realizar de forma sencilla y amigable las modificaciones en nuestra Release 2 sobre Gentoo Linux. Lo primero de todo es instalar el procmail que es el programa que se encargará de filtrar todo el correo de entrada y que nos permitirá crear reglas y acciones para dicho filtrado. En Gentoo gracias al comando emerge es bastante sencillo.

emerge procmail

Una vez instalado tenemos que crear el fichero /etc/procmailrc si este no existiera. Este fichero es muy importante ya que contiene las configuraciones, reglas de filtrado y acciones a realizar al recibir los mensajes. Mi fichero procmailrc funcionando:

LOGFILE=/var/log/procmail.log
VERBOSE=on
DROPPRIVS=yes

# spamassassin solo chequeará los mensajes menores de 250KB.
:0fw: spamassassin.lock
* < 256000
|/usr/bin/spamc -f

# Aquí indicamos que debemos hacer con el SPAM.
# Si descomentamos /dev/null serán eliminados.
:0H:
* ^X-Spam-Status: Yes
#/dev/null 

# Una vez hecho esto direccionamos el correo a su buzón.
:0w
|/home/vpopmail/bin/vdelivermail '' bounce-no-mailbox

bien … ahora procedemos a crear nuestro fichero de log donde se guardarán los mensajes que han sido filtrados por procmail y le otorgamos permisos de escritura.

touch /var/log/procmail.log
chmod 777 /var/log/procmail.log

una vez hecho esto procedemos a cambiar el fichero de configuracion .qmail-default de cada uno de los dominios en los que deseamos usar las reglas de filtrado e incluimos la siguiente linea:

vi /home/vpopmail/domains/dominio.com/.qmail-default
| /var/qmail/bin/preline /usr/bin/procmail -pm /etc/procmailrc

La configuración del spamassassin la podemos localizar en:

/etc/mail/spamassassin/local.cf

He incluido la siguientes reglas para marcar los mensajes de SPAM:

# nos envia los mensajes marcados y su puntuación
rewrite_header Subject *****SPAM*****(_SCORE_)**

# nos envía el mensaje de SPAM como adjunto,
# y un análisis de todas las puntuaciones que ha recibido.
report_safe 1

# la puntuación mínima del mensaje para que sea tratado como SPAM.
required_score 5.0

Ahora solo tenemos que reiniciar el Qmail y el spamassasin.

/etc/init.d/qmail restart
/etc/init.d/spamd reload

He tenido que comprobar que el Qmail-Scanner está funcionando correctamente. Para ello me creo una redirección de mi dominio local o localhost que es a donde irán todos los correos escaneados por el Qmail-Scanner:

vi /home/vpopmail/domains/localhost/.qmail-default
#incluir esta linea con su dirección de email.
&nospam@micorreo.com

de esta manera también recibo los mensajes de aviso de virus, spam, etc  que ha procesado el qmail scanner … Para monitorizar en tiempo real el log de mensajes que voy recibiendo solo debo usar el comando tail -f y esperar la recepción o envío de nuevos mensajes.

tail -f /var/log/qmail/current

Guías y otra documentación utilizada:
http://guias.ovh.es/Release2Procmail
http://www.freebsd.org/…/mail-procmail.html

, , , , , , , , , ,

10 Comentarios