Amministrare e gestire mailing list con Mailman
Introduzione
Mailman è un software open-source per la gestione di mailing list ed è probabilmente il più popolare e il più diffuso gestore di mailing list su piattaforma Linux.
In questo tutorial vederemo come installare e configurare Mailman su una distribuzione Debian stable.
Prerequisiti
- Per funzionare, Mailman ha bisogno che sul sistema sia installato e configurato un server di posta. In questa guida utilizzeremo il mailserver Postfix, configurato secondo questa modalità: Internet Service Provider con Debian.
- In questa guida sarà utilizzato un Virtual Host con hostname
lists.example.com
dove installeremo Mailman.lists.example.com
farà quindi parte dell'indirizzo delle nostre liste, che avranno tutte la forma:<listname>@lists.example.com
.
Facciamo quindi in modo che il nostro nuovo sottodominio abbia le voci corrette nei DNS del nostro provider.
- Mailman è distribuito con un front-end in HTML, quindi occorre che sul nostro server ci sia configurato Apache.
Installazione
Per l'installazione procediamo come sempre:
# apt-get install mailman listadmin
Durante l'installazione avremo questo output:
Languages to support: <-- it (Italiano) Missing site list Mailman needs a so-called "site list", which is the list from which password reminders and such are sent out from. This list needs to be created before mailman will start. To create the list, run "newlist mailman" and follow the instructions on-screen. Note that you also need to start mailman after that, using /etc/init.d/mailman start. <-- Ok
Mailman è distribuito con un file di configurazione di Apache, /etc/mailman/apache.conf
, che dovremo copiare in /etc/apache2/sites-available/mailman.conf:
# cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf
Apriamo il file:
# nano /etc/apache2/sites-available/mailman.conf
e aggiungiamo questa configurazione (NOTA: è già presente un Virtual Host. Non va utilizzato, poichè la configurazione che useremo è differente)
[...] <VirtualHost *:80> ServerName lists.example.com DocumentRoot /var/www/lists ErrorLog /var/log/apache2/lists-error.log CustomLog /var/log/apache2/lists-access.log combined <Directory /var/lib/mailman/archives/> Options FollowSymLinks AllowOverride None </Directory> Alias /pipermail/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm ScriptAlias /create /usr/lib/cgi-bin/mailman/create ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo ScriptAlias /options /usr/lib/cgi-bin/mailman/options ScriptAlias /private /usr/lib/cgi-bin/mailman/private ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo </VirtualHost>
Come ultimo, creiamo la directory e abilitiamo il Virtual Host:
# mkdir /var/www/lists # a2ensite mailman.conf # /etc/init.d/apache2 restart
Configurazione
Poichè stiamo usando un Virtual Host, dobbiamo modificare alcune variabili di Mailman:
# nano /etc/mailman/mm_cfg.py
[...] DEFAULT_URL_PATTERN = 'http://%s/' [...] DEFAULT_EMAIL_HOST = 'lists.example.com' [...] DEFAULT_URL_HOST = 'lists.example.com' [...]
Postfix
Ora dobbiamo configurare Postfix:
# postconf -e 'relay_domains = lists.example.com' # postconf -e 'mailman_destination_recipient_limit = 1'
Apriamo il file
# nano /etc/postfix/master.cf
e verifichiamo che siano state aggiunte queste righe
[...] mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} [...]
Ora dobbiamo associare il dominio lists.example.com
al mailman: transport
di Postfix.
# nano /etc/postfix/main.cf
e verifichiamo che ci siano le voci:
relay_domains = ... lists.example.com relay_recipient_maps = ... hash:/var/lib/mailman/data/virtual-mailman transport_maps = hash:/etc/postfix/transport mailman_destination_recipient_limit = 1
# nano /etc/postfix/transport
di contenuto
lists.example.com mailman: