Vamos a ver cómo instalar Mailman, un potente gestor de listas de correo, mayoritariamente usado en la actualidad frente a otras alternativas como majordomo, en un sistema Debian (en mi caso Sarge), e integrándolo con el MTA Postfix.
Lo primero será por supuesto tener instalado y correctamente funcionando
Postfix. Esa tarea será objeto de otro tutorial disponible en breve.
En mi caso Postfix tira de MySQL para autentificación de usuarios y para
saber a qué buzones debe entregar el correo virtual.
El correo local utiliza el archivo de alias. Además, dado que solamente
uso correo local para gestionar las listas de mailman (todos los demás
usuarios son virtuales), he optado por diferenciar el correo de entrega local
y el correo de los usuarios virtuales por medio de diferentes mailhost:
- kalendas.net para entregas virtuales
- lists.kalendas.net para entregas locales (únicamente mailman)
Cada cual puede optar por el esquema que quiera y se adapte a sus necesidades,
pero éste me parece limpio y sencillo :)
Dicho ésto comenzamos:
1. Instalamos mailman. Al finalizar nos advertirá de que no puede arrancar el servicio hasta que hayamos creado la lista especial 'mailman'. La crearemos en su debido momento.
2. Editamos /etc/mailman/mm_cfg.py y nos aseguramos de que sólo existan las siguientes líneas. Si hay otras (que no sean comentarios) las eliminamos pues causarán problemas.
3. Editamos el archivo de configuración de Postfix /etc/postfix/main.cf y agregamos las siguientes líneas (puede que alguna de éstas líneas ya existan en tu configuración, cambia las opciones que sean necesarias):
En mydestination deberemos incluir el host que sirve las mailing list, para que Postfix sepa que todo lo que venga @lists.dominio.com va a ser correo tratado localmente (sin tirar de MySQL y virtual domains). Y en relay_domains es fundamental incluir también éste hostname, o de lo contrario Postfix denegará los envíos de los suscriptores alegando "Relay access denied".
4. Ahora si podemos crear la lista especial 'mailman'. Esta lista DEBE existir
siempre en una instalación de mailman, aunque su nombre puede variar.
Para no complicar las cosas la dejaremos con su nombre por defecto.
Más información sobre el cometido de ésta lista especial
aquí.
5. Con ésto habremos creado nuestra primera lista, que además es obligatoria. Tras crearla debemos reiniciar Postfix con /etc/init.d/postfix reload para que coja los cambios hechos anteriormente y encuentre el fichero de alias /var/lib/mailman/data/aliases que nos acaba de generar Mailman. Las subsiguientes listas se crearán siguiendo el mismo procedimiento, sin olvidarse nunca de ejecutar tras su creación el script /usr/lib/mailman/bin/genaliases que como su nombre indica, genera los alias necesarios para que Postfix "entienda" esa lista. No hace falta reiniciar Postfix al crear las siguientes listas.
6. Por último, tenemos que configurar nuestro Apache para que sirva correctamente la interfaz de administración de Mailman. Para ello será necesario agregar un nuevo virtual host conteniendo lo siguiente. Si a lo largo de este tutorial pusiste rutas diferentes, tendrás que modificar el virtual host acorde a ellas.
7. Agrega un alias a tu BIND o djbdns, que apunte a lists.dominio.com (solo
una entrada A o alias, no crees una entrada MX pues el correo lo va a seguir
gestionando tu mail server principal). Por ejemplo en djbdns agrega a tu fichero
data la siguiente línea: +lists.dominio.com:10.3.4.5:43200.
Arranca mailman: /etc/init.d/mailman start
Si ahora accedes a http://lists.dominio.com/mailman/listinfo
te aparecerá el interfaz web de Mailman.
Si lo deseas puedes crear un index.html que redirija directamente a esa URL
en /var/www/lists.dominio.com para que la gente que acceda desde el
dominio raíz se encuentre algo.