Mailing List · 5 min read · Sep 09, 2025
Cómo instalar y configurar Mailman (con Postfix) en Debian Squeeze
Cómo instalar y configurar Mailman (con Postfix) en Debian Squeeze
Versión 1.0
Autor: Falko Timme
Sígueme en Twitter
Mailman es un gestor de listas de correo de código abierto, es decir, se puede utilizar para gestionar discusiones por correo electrónico y listas de boletines. Probablemente sea el gestor de listas de correo más popular y ampliamente utilizado en Internet. Este tutorial explica cómo instalar y configurar Mailman en un servidor Debian Squeeze con un servidor de correo Postfix.
¡No garantizo que esto funcione para ti!
1 Nota Preliminar
En este tutorial configuraré un host virtual con el nombre de host lists.example.com donde instalaré Mailman. lists.example.com también es la parte correcta de las direcciones de correo electrónico de la lista de correo que se configurarán en Mailman, es decir, los correos a una lista de correo deberán enviarse a la dirección
Como tu nombre de host será diferente, ajusta este tutorial en consecuencia. También asegúrate de que tu nombre de host exista en DNS.
Mailman se puede utilizar con muchos servidores de correo (por ejemplo, Postfix, Exim, Sendmail, Qmail). Utilizaré Postfix en este tutorial. Asegúrate de tener una instalación de Postfix funcionando, por ejemplo, como se muestra en este tutorial: Usuarios y dominios virtuales con Postfix, Courier, MySQL y SquirrelMail (Debian Squeeze)
2 Instalando Mailman y Apache
Como Mailman viene con un frontend web, necesitamos un servidor web además de Mailman. Elijo Apache. Mailman y Apache se pueden instalar de la siguiente manera:
apt-get install mailman apache2Verás las siguientes preguntas/mensajes:
Idiomas a soportar: <– es (Español)
Lista de sitios faltante
Mailman necesita una llamada “lista de sitios”, que es la lista desde la cual se envían recordatorios de contraseña y similares. Esta lista debe ser creada antes de que Mailman comience. Para crear la lista, ejecuta “newlist mailman” y sigue las instrucciones en pantalla. Ten en cuenta que también necesitas iniciar Mailman después de eso, usando /etc/init.d/mailman start. <– Ok
Mailman viene con un archivo de configuración de Apache, /etc/mailman/apache.conf, que copiamos a /etc/apache2/sites-available/mailman.conf:
cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.confAbre /etc/apache2/sites-available/mailman.conf…
vi /etc/apache2/sites-available/mailman.conf… y añade la siguiente configuración de vhost al archivo (ya hay un vhost para lists.example.net en el archivo que está comentado - por favor no uses ese vhost ya que mi configuración de vhost difiere un poco aunque se vea bastante similar):
| [...] |
La penúltima línea ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo es opcional; hace que cuando vayas a http://lists.example.com/, seas redirigido a http://lists.example.com/listinfo. Esto tiene sentido si no tienes archivos que servir en la raíz del documento /var/www/lists.
A continuación, crea la raíz del documento /var/www/lists, habilita la configuración del vhost lists.example.com y reinicia Apache:
mkdir /var/www/lists
a2ensite mailman.conf
/etc/init.d/apache2 restart
Debido a que estamos utilizando un vhost aquí (lists.example.com), necesitamos ajustar las siguientes variables en /etc/mailman/mm_cfg.py:
vi /etc/mailman/mm_cfg.py| [...] DEFAULT_URL_PATTERN = 'http://%s/' [...] DEFAULT_EMAIL_HOST = 'lists.example.com' [...] DEFAULT_URL_HOST = 'lists.example.com' [...] |
3 Configurando Postfix
Ahora necesitamos configurar Postfix. Primero ejecuta:
postconf -e ‘relay_domains = lists.example.com’
postconf -e ‘mailman_destination_recipient_limit = 1’
Luego abre /etc/postfix/master.cf…
vi /etc/postfix/master.cf… y asegúrate de que tienes las siguientes líneas en él (deberían estar allí por defecto):
| [...] mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} [...] |
A continuación, debemos asociar el dominio lists.example.com al transporte de mailman. Cómo lo hagas depende de tu configuración de Postfix. Por ejemplo, si has configurado tu servidor de acuerdo con el tutorial Usuarios y dominios virtuales con Postfix, Courier, MySQL y SquirrelMail (Debian Squeeze), los transportes se almacenan en una base de datos MySQL; en la mayoría de otras configuraciones, el archivo /etc/postfix/transport se utiliza para crear transportes. Voy a describir ambos casos en los capítulos 3.1 y 3.2.
3.1 Transportes en una base de datos MySQL
Si has configurado tu servidor de acuerdo con el tutorial Usuarios y dominios virtuales con Postfix, Courier, MySQL y SquirrelMail (Debian Squeeze), los transportes se almacenan en la tabla de transporte en la base de datos MySQL mail. Para crear el transporte necesario, inicia sesión en MySQL…
mysql -u root -p… y ejecuta los siguientes comandos de MySQL:
USE mail;
INSERT INTO transport (domain, transport) VALUES (‘lists.example.com’, ‘mailman:’);
quit;
Reinicia Postfix después:
/etc/init.d/postfix restart3.2 Transportes en /etc/postfix/transport
Si no tienes tu transporte en una base de datos MySQL, probablemente uses el archivo /etc/postfix/transport. En este caso, puedes configurar el transporte necesario de la siguiente manera:
postconf -e 'transport_maps = hash:/etc/postfix/transport'Abre /etc/postfix/transport…
vi /etc/postfix/transport… y añade la siguiente línea:
| lists.example.com mailman: |
Ejecuta
postmap -v /etc/postfix/transportdespues y reinicia Postfix:
/etc/init.d/postfix restart 4 Creando la lista de correo mailman
Antes de que podamos comenzar a usar Mailman, debemos crear una lista de correo llamada mailman; esto es obligatorio - sin ella Mailman no comenzará:
newlist --urlhost=lists.example.com --emailhost=lists.example.com mailmanEn la mayoría de los casos, los switches –urlhost y –emailhost no son necesarios porque nuestro vhost ya se llama lists.example.com, y también lo tenemos en /etc/mailman/mm_cfg.py (DEFAULT_EMAIL_HOST y DEFAULT_URL_HOST), pero si quieres asegurarte de que Mailman utiliza el nombre de host correcto, utiliza estos switches.
root@server1:~# newlist –urlhost=lists.example.com –emailhost=lists.example.com mailman
Ingresa el correo electrónico de la persona que ejecuta la lista: <– especifica la dirección de correo electrónico del administrador de la lista, por ejemplo, [email protected]
Contraseña inicial de mailman: <– mailman_password
Para terminar de crear tu lista de correo, debes editar tu archivo /etc/aliases (o equivalente) añadiendo las siguientes líneas, y posiblemente ejecutando el programa newaliases:
lista de correo mailman
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”
Presiona enter para notificar al propietario de mailman… <– ENTER
root@server1:~#
Ahora abre /etc/aliases y añade los alias que ves en la salida del comando newlist (esto debe hacerse manualmente para cada nueva lista que crees):
vi /etc/aliases| [...] ## lista de correo mailman mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" |
Cada vez que modifiques /etc/aliases, necesitas ejecutar
newaliases
/etc/init.d/postfix restart
despues.
Ahora finalmente podemos iniciar Mailman:
/etc/init.d/mailman startroot@server1:~# /etc/init.d/mailman start
Iniciando el qrunner maestro de Mailman: mailmanctl.
root@server1:~#
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.