Limitar el tamaño máximo del correo con Qmail

Algo muy frecuente, más de lo que parece a pesar de que el sentido común indique lo contrario, es que los usuarios de un servidor de correo intenten enviar auténticos «ladrillos» a través del correo electrónico. Para la mayor parte de los usuarios 100 KB o 100 MB les suena más o menos a lo mismo e intentarán enviarlo a través del correo sin siquiera pararse a pensar si es o no razonable.

Un amigo hizo una buena comparación para que se vea la diferencia, en el caso de los 100 MB es como si se intentase enviar por correo postal una lavadora, a todo el mundo le parecería una autentica barbaridad.

Para evitarlo, podemos limitar el tamaño máximo de los correos que son enviados con Qmail. Para ello nada más sencillo que indicar el tamaño máximo en el fichero /var/qmail/control/databytes que se quiere establecer expresado en bytes. Por ejemplo para limitar el tamaño de los correos a 10 MB escribimos en el fichero 10485760 .

Guardamos el fichero y reiniciamos el servicio, con esto ya estará establecido el límite máximo del tamaño del correo. El usuario recibirá un mensaje o un correo de aviso de que no puede enviar más «ladrillos» por email.

Límite de conexiones IMAP con Qmail en Plesk

Por defecto el límite de las conexiones máximas de imapd que se configura con Qmail en Plesk es bastante bajo, y probablemente te encontrarás con problemas a la hora de tener varias cuentas sincronizadas con el servidor de correo.

En Qmail se establecen los valores MAXPERIP y MAXDAEMONS con un límite realmente bajo, aunque esa limitación a la baja venga motivada por no sobrecargar el servidor, evitando abusos de uso de memoria y CPU. Para modificar estos parámetros debes editar el archivo /etc/courier-imap/imapd y aumentar esos valores. Una vez editado el archivo no olvidar reiniciar el servicio para aplicar los cambios.

No eleves demasiado el límite, pues podrías sobrecargar el servidor, es mucho mejor aumentar poco a poco esos valores hasta conseguir establecer el límite justo un poco por encima de lo que se necesita.

Gestionar la cola de correo con Qmail

Qmail no ofrece un modo de revisar y gestionar la cola de correo, por lo que es necesario disponer de un programa como qmHandle. Este pequeño script escrito en perl permite manejar la cola de correo de Qmail a través de la línea de comandos.

Para su instalación bastará con obtener la última versión del script desde el repositorio de Sourceforge y copiarlo a /usr/bin.

#wget http://downloads.sourceforge.net/project/qmhandle/qmhandle-1.3/qmhandle-1.3.2/qmhandle-1.3.2.tar.gz
#tar xzvf  qmhandle-1.3.2.tar.gz
#cp /qmhandle-1.3.2/qmHandle /usr/bin/

A partir de aquí podremos manejar la cola de Qmail a través de qmHandle, estas son las opciones con las que contamos (qmHandle –help):

#qmHandle –help

qmHandle v1.3.2
Copyright 1998-2003 Michele Beltrame

Available parameters:
-a : try to send queued messages now (qmail must be running)
-l : list message queues
-L : list local message queue
-R : list remote message queue
-s : show some statistics
-mN : display message number N
-dN : delete message number N
-fsender : delete message from sender
-f’re’ : delete message from senders matching regular expression re
-Stext : delete all messages that have/contain text as Subject
-h’re’ : delete all messages with headers matching regular expression re (case insensitive)
-b’re’ : delete all messages with body matching regular expression re (case insensitive)
-H’re’ : delete all messages with headers matching regular expression re (case sensitive)
-B’re’ : delete all messages with body matching regular expression re (case sensitive)
-t’re’ : flag messages with recipients in regular expression ‘re’ for earlier retry (note: this lengthens the time message can stay in queue)
-D : delete all messages in the queue (local and remote)
-V : print program version

Additional (optional) parameters:
-c : display colored output
-N : list message numbers only
(to be used either with -l, -L or -R)

You can view/delete multiple message i.e. -d123 -v456 -d567

Para revisar la cola de correo debemos ejecutar qmHandle -l, que nos devolverá una salida parecida a esta:

#qmHandle -l

Total messages: 0 –> Recuento del total de mensajes en cola
Messages with local recipients: 0 –> Correos locales en cola
Messages with remote recipients: 0 –> Correos remotos en cola
Messages with bounces: 0 –> Correos rebotados
Messages in preprocess: 0 –> Correos preprocesados

Archivo de log de Qmail con Plesk

Normalmente es posible encontrar el archivo de log de Qmail en la las siguientes rutas:

  • /var/log/qmail/current
  • /var/log/mail/
  • /var/log/maillog

Pero cuando tenemos instalado Qmail a través de Plesk la ruta por defecto del log se establece en el directorio de Plesk (/usr/local/psa/). Así podremos encontrar el archivo de log de Qmail en la siguiente ruta /usr/local/psa/var/log/maillog