# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Añadir la cabecera Content-type al usar el comando mail o mailx


En algunas versiones del comando mail|mailx|Mail (creo que en las antiguas) se podía especificar una cabecera con el parámetro -a:

$ mail --help
usage: mail [-dEIinv] [-a header] [-b bcc-addr] [-c cc-addr] [-s subject] to-addr ...

De este modo era sencillo especificar cualquier cabecera y modificarla, como por ejemplo el Content-type si quisieramos enviar un correo en formato HTML (text/html). En cambio en nuevas versiones este parámetro ha desaparecido, y si queremos añadir el Content-type, por ejemplo, hay que engañar al MTA del siguiente modo:

$ cat mensaje.html | mail -s "$(echo -e "Este es el asunto\nContent-Type: text/html")" foo@bar.com

Como véis, a la hora de especificar el subject del mail con el parámetro -s, hacemos la trampa de crear un salto de línea y especificar después el Content-type, al igual que podemos ver en las cabeceras de un email estándar. De este modo, el MTA no asocia la segunda línea con el Subject sino como si fuera una cabecera normal de Content Type.

Estadísticas de correo, spam y virus con Mailgraph


Mailgraph es un sistema de estadísticas que utiliza como frontend RRDtool y permite recolectar de forma gráfica el número de correos enviados y recibidos en gráficos diarios, semanales, mensuales y anuales. Básicamente tenemos un script en perl corriendo en el servidor, es el encargado de recolectar los datos (rrd), y por otra parte un script cgi a través del cual se generan y visualizan los gráficos vía web.

Instalación de Mailgraph

Mailgraph requiere tener instalado RRDtool y el módulo de Perl File::Tail. RRDTool se puede instalar tanto desde el gestor de paquetes como compilandolo a mano. Lo más rápido, desde YUM o APT:

# yum install rrdtool.i386

El módulo de perl lo podemos instalar desde cPan:

cpan> install File::Tail

Descargamos y descomprimimos la última versión desde el sitio web de mailgraph:

# wget http://mailgraph.schweikert.ch/pub/mailgraph-1.14.tar.gz
#  tar -xzvf mailgraph-1.14.tar.gz
# cd mailgraph-1.14

Ahora vamos a modificar el script base que nos ofrecen para el arranque del demonio en perl (mailgraph-init). Básicamente, tenemos que modificar las siguientes variables:

PATH=/bin:/usr/bin
MAILGRAPH_PL=/usr/local/bin/mailgraph.pl # RUTA DONDE VAMOS A COLOCAR EL SCRIPT
MAIL_LOG=/var/log/maillog # RUTA DE NUESTRO LOG DE CORREO
PID_FILE=/var/run/mailgraph.pid
RRD_DIR=/var/lib/mailgraph # RUTA DONDE ALMACENAR LOS RRD

Una vez realizado esto, movemos el script a init.d, le asignamos permisos de ejecución y lo arrancamos:

# cp mailgraph-init /etc/init.d/mailgraph
#chmod 0755 /etc/init.d/mailgraph
# /etc/init.d/mailgraph start

En este momento el demonio debería estar corriendo:

# ps aux | grep mailgraph
root     13023  1.1  0.2  14132  4128 ?        SNs  17:39   0:27 /usr/bin/perl -w /usr/local/bin/mailgraph.pl -l /var/log/maillog -d --daemon-pid=/var/run/mailgraph.pid --daemon-rrd=/var/lib/mailgraph

Ahora solo nos queda ejecutar el cgi para ver los gráficos generados mediante este script. Lo tendréis que ubicar en una ruta en la que podáis ejecutar CGI, debería tener en apache permitido lo siguiente:

<Directory /carpeta/web/script>
Options ExecCGI
</Directory>

Aseguraos también de que mod_perl está instalado para la ejecución del cgi, y que el handler está configurado en apache:

AddHandler cgi-script .cgi

Esto debería ser todo, ejecutamos el cgi desde el navegador y veremos algo tal que así, en este enlace tenéis una demo a tiempo real.

MailGraph
mailgraph

cPanel 11.25: error en módulo perl Mail::SPF


Al parecer en algunas versiones del nuevo cPanel 11.25.0-RELEASE se están detectando errores en la instalación del módulo de perl Mail::SPF. Si ejecutamos /scripts/checkperlmodules encontramos los siguientes errores:

CPAN.pm: Going to build J/JM/JMEHNLE/mail-spf/Mail-SPF-v2.007.tar.gz

perl-64bit-hack: enabled
# running Build.PL --otherldflags -L/usr/lib64 --config ldflags=-L/usr/lib64 --extralibdir /usr/lib64
Creating new 'MYMETA.yml' with configuration results
Creating new 'Build' script for 'Mail-SPF' version 'v2.7.0'
Prereq 'v5.6' for 'perl' is not supported by Module::Build::Compat
make: *** No targets.  Stop.
 JMEHNLE/mail-spf/Mail-SPF-v2.007.tar.gz
 /usr/bin/make OTHERLDFLAGS=-L/usr/lib64 LDFLAGS=-L/usr/lib64 EXTRALIBDIR=/usr/lib64 OTHERLDFLAGS=-L/usr/lib64 LDFLAGS=-L/usr/lib64 EXTRALIBDIR=/usr/lib64 -- NOT OK
Running make install
 Make had returned bad status, install seems impossible
perlmod--Install done

Para efectuar la instalación de un modo correcto ejecutad el siguiente comando:

 perl -MCPAN -e "get('Mail::SPF')" && cd /home/.cpan/sources/authors/id/J/JM/JMEHNLE/mail-spf && tar -xzvf Mail-SPF-v2.007.tar.gz && cd Mail-SPF-v2.007 && perl Build.PL && ./Build && ./Build test && ./Build install && /scripts/checkperlmodules --full

Fuente | Foros cPanel

Helm: CEmail.GetMailIP error 80040403 Unable to get mail site ip.


Si al tratar de añadir o borrar una nueva cuenta de correo, un alias o una lista de correo en un dominio, recibimos el siguiente error:

CEmail.GetMailIP error 80040403
Unable to get mail site ip. Please try again or contact support.
/interfaces/standard/MailAlias.asp, line 13.

Tendremos que revisar que tenemos configurado el servicio de correo de forma correcta en la sección de Helm “Activación de recursos“:

Inicio > Configuración del sistema > Recursos > Mail

En ese lugar, debe haber un recurso asignado al servicio de correo (así como a los demás servicios del servidor).

En caso de no aparecer, simplemente asignad el recurso al servicio de correo habilitado en el servido (os aparecerá en un desplegable) y solucionado.