Publica tu how-to

Dinos como hacer lo que sabes hacer, mándanos un email a wdonet@gmail.com y lo publicamos (dos días máximo) o si te interesa unirte al equipo de redactores, también háznoslo saber por correo.

Servidor de correo personal con postfix - MDA

Continuamos con los posts dedicados a configurar un 'Servidor de correo personal con postfix'.

Previamente ya configuramos el MTA, Mail Transfer Agent.

Toca el turno del MDA, Mail Delivery Agent, el cual cumple las funciones de un 'cartero' al que la central de correos (el MTA) le entrega el correo a ser entregado en los buzones correctos.

En la configuración del MTA se especificó que se usaría el programa Procmail para realizar las labores de entrega, y es el software que vamos a instalar y configurar a continuación.


Procmail puede descargarse desde su sitio oficial, o instalarse con las utilidades de la distribución de GNU/Linux en uso. Para Debian, el paquete se llama procmail.

La configuración no se lleva mucho. En realidad implica crear unos subdirectorios, un archivo de configuración y el de logging. Y además, mucha de esta configuración es en parte un preparar terreno para los siguientes programas que vamos a configurar.

  • Subdirectorios para recibir el correo
En primer lugar, nos aseguramos de que exista el subdirectorio $HOME/Mail (o como le hayamos puesto en la configuración de Postfix).

Posteriormente, hay que crear unos subdirectorios aquí, para que el cliente de correo (mutt) sepa si el correo es nuevo, o si ya fue leído, y para tener un directorio de trabajo temporal:

$ mkdir -p ~/Mail/{new, cur, tmp}

Hecho eso, vamos a preparar el terreno para Spambayes, que utilizará algunos subdirectorios para almacenar el correo dependiendo el tipo de correo que llegue (seguro, spam o inseguro):
$ mkdir -p ~/Mail/{.MissedSpam, .MissedHam, .CaughtSpam, .Unsure}
$ mkdir -p ~/Mail/.MissedSpam/{new, cur, tmp}
$ mkdir -p ~/Mail/.MissedHam/{new, cur, tmp}
$ mkdir -p ~/Mail/.CaughtSpam/{new, cur, tmp}
$ mkdir -p ~/Mail/.Unsure/{new, cur, tmp}

  • Archivo de configuración
Lo siguiente es crear el archivo ~/.procmailrc para configurar Procmail. Nótese que este archivo es personal, por cuenta de correo, pues cada uno tiene una cuenta de correo personal. Sin embargo, debe de ser posible definir alguna configuración global, siempre cuidando que se apunte a los directorios apropiados para cada usuario y su cuenta de correo, evitando problemas de privacidad.
SHELL=/bin/sh
MAILDIR=$HOME/Mail/
DEFAULT=$HOME/Mail/
VERBOSE=on
LOGFILE=/var/log/procmail

:0:
${DEFAULT}
Lo que estamos diciendo es, simplemente, definir el directorio en el que reside el correo para el usuario. Nótese que para MAILDIR y DEFAULT el nombre del subdirectorio termina con / . Si no terminara así, Procmail asume que se trata de un archivo, y entonces busca colocar los correos todos dentro de un mismo archivo (al estilo del viejo comando mail). Sin embargo, con la notación de la / al final, se logra que Procmail deposite los correos en el subdirectorio indicado, con los subdirectorios cur, new y tmp previamente creados.

El último par de líneas le indican a Procmail que deposite todos los correos que lleguen en el subdirectorio marcado como DEFAULT. Posteriormente cuando configuremos Spambayes haremos una modificación aquí, para que Procmail sepa diferenciar entre spam y correo seguro (utilizando los subdirectorios que ya creamos aquí mismo).

  • Archivo de registro (logging)
La línea LOGFILE del archivo .procmailrc define el archivo de logging. Hay que crear previamente este archivo, y en caso de ser un archivo de sistema, cuidar que los permisos sean los adecuados para que el proceso de Procmail escriba en ellos, de lo contrario el log de Postfix indicará un error de que Procmail no pudo escribir sobre el archivo de log, situación que debe corregirse.


Prueba
Hecho esto ya podríamos probar la recepción de correos, aunque sin MUA todavía, sería difícil y complicado revisar el correo de esta manera:

Desde alguna dirección de prueba, enviarnos un correo a nuestra dirección de correo del servidor, nombreusuario@dominio .

Si todo quedó bien configurado, Postfix debería de recibir el correo, entregárselo a Procmail y este depositarlo en el directorio ~/Mail/new


Breve nota cultural
Todo el correo electrónico y los protocolos para el mismo se basan en archivos de texto plano, por lo que aunque el correo incluyera attachments o código HTML, podría abrirse en cualquier editor de texto.

¿Cómo le hacen los clientes para desplegar el correo cuando existen archivos adjuntos o código HTML?

Todo esto tiene que ver con los protocolos definidos por la IETF (Internet Engineering Task Force) para el correo electrónico, en algunos documentos RFC. Desde mi punto de vista son muy interesantes y accesibles (aunque en inglés):

Por ejemplo, el correo electrónico per se original se define en el RFC 2822
El uso de archivos adjuntos en realidad se logra gracias al uso de MIME: RFCs 2045 a 2049
El uso de código HTML es parte de la definición del correo electrónico: RFC2822
Otros RFC de interés:
Protocolo SMTP: RFC 2821
Protocolo original de email, que duró casi 20 años: RFC 822


Dicho esto, continuemos con el cliente de correo, el MUA.

No hay comentarios:

Publicar un comentario

Que opinas sobre esta publicación?