Mail

Postfix, Courier y MySQL
Alvaro Marín Illera [email protected] 5 de Abril del 2002

Instalación y configuración de Postfix, Courier y MySQL para operar juntos y conseguir un completo servidor de correo (SMTP e IMAP) con usuarios “virtuales” en una Base de Datos.

Introducción
Desde hace tiempo uso Postfix para el envío de correos con el fin de depender lo menos posible de otros servidores,que daban más de un problema (autentificación, caídas…). Postfix es un MTA (Message Transfer Agent) relativamente fácil de administrar, seguro (al menos más que sendmail y otros) y que no sobrecarga mucho la máquina ya que solamente se cargan los módulos necesarios en cada momento. Su función es comunicarse con los otros servidores (rigel.deusto.es, terra.es …), para entregarse entre ellos elcorreo. Por ejemplo, cuando algún amigo (si es “amiguita”, mejor ;P ) nuestro nos quiere enviar un mail, se conecta al servidor de correo de terra (mailhost.terra.es) y mediante el protocolo SMTP, manda los comandos necesarios para que coja su mensaje. Posteriormente, mailhost.terra.es se conecta con rigel.deusto.es y le entrega dicho mail, con lo que éste lo guarda en el buzón del usuario alque iba dirigido el mensaje. Si bajamos al aula de correo de la Universidad, mediante el protocolo pop3 nos comunicamos con rigel.deusto.es para que nos devuelva los mensajes que hay en nuestro buzón y así recibir el mensaje que nuestro amigo nos había enviado. Otro protocolo para poder “ver” los mensajes que tenemos en nuestro servidor, es IMAP (Internet Message Access Protocol), el cual es muchomás potente que el pop3 anteriormente citado. Permite entre otras muchas cosas, acceder a los mensajes del servidor como si fueran locales, creación de carpetas en el buzón del servidor, buzones accesibles por varias personas… He elegido courier-imap para implementarlo y poder ver así, toda su potencia 🙂 Por último, pero no por ello menos importante, ante cuestiones del estilo de “cómo sepodría hacer para tener usuarios solo para el correo?”, “cómo podría gestionar los usuarios del correo sin tener un /etc/passwd de 5000 líneas?”… decidí introducir también en la pareja postfix-courier, MySQL para tener una Base de Datos en la que se podrían ir guardando los usuarios “virtuales” (ya que no van a existir en el sistema y por tanto en /etc/passwd) de correo electrónico. Como resumen aesta pequeña introducción, tenemos que Postfix se encargará de las labores de MTA, Courier de dar servicio IMAP y MySQL de almacenar los usuarios “virtuales”. Todo esto ha sido implementado sobre GNU/Linux Debian Woody en un Pentium75 con 32MB de RAM. Todos los comentarios de instalación y configuración los haré en base a esto, así que u os instalais Debian (qué mejor disculpa que esta, no? ;P) ole dais a google y rpm como loc@s. 🙂

Configurando Postfix
Postfix es muy sencillo de ponerlo a andar. Con la configuración que viene por defecto (si no recuerdo mal), ya es capaz de enviar mensajes. Para instalarlo en Woody, basta con:
apt-get install postfix

También vamos a instalar el soporte que tiene postfix para mysql:
apt-get install postfix-mysql

Para l@s que no usen debian,este soporte hay que darselo recompilando postfix con las opciones necesarias de la forma que muestro a continuación:
make -f Makefile.init makefiles ’CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include’ ’AUXLIBS=/usr/local/mysql/lib -lmysqlclient -lz -lm’ make && make install

Sustituyendo /usr/local por la ruta donde tengais dichos archivos en vuestra máquina. A continuación copiamos el archivovirtual del src de postfix al directorio de éste:
cp src/virtual/virtual /usr/libexec/postfix

Una vez instalado, vamos a /etc/postfix y con vuestro editor favorito, abrimos el archivo principal de configuración llamado main.cf, el cual está estupendamente comentado. Os pego a continuación el mío para que podais ir comparando y comento solamente los cambios importantes:
queue_directory =…