Cosa tratta questa guida?
Questa pagina contiene una guida all’installazione e configurazione di GNU Mailman con Postfix. La guida è stata redatta dal LUG consultando diverse guide<ref>Guida di HowToForge</ref><ref>Manuale di installazione di GNU Mailman</ref> presenti in rete e sulla base dei problemi riscontrati nel corso dell’installazione su Debian Wheezy. |
Indice
Prerequisiti
Per utilizzare questa guida è necessario avere soddisfatto i seguenti pre-requisiti:
- Avere un webserver Apache2 installato e funzionante su una macchina GNU/Linux
- Avere i DNS opportunamente configurati per puntare sul server che si desidera configurare sia con il record A (per l’accesso all’interfaccia web della mailing list), che con il record MX.
Instazione di mailman
La prima operazione da compiere è installare GNU Mailman selezionando, nel corso dell’installazione, i linguaggi desiderati. Per installare digitare il comando:
aptitude install mailman
Configurazione di Apache
GNU Mailman viene fornito con un modello di configurazione per il virtual host di Apache. Questo file è salvato in /etc/mailman/apache.conf e può essere copiato in/etc/apache2/sites-available/mailman.conf. Il file mailman.conf dovrebbe contenere una configurazione simile alla seguente, nella quale ovviamente è necessario rimpiazzare il valore ServerName con quello del proprio server.
<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>
Prima di attivare il virtual host è necessario creare la root del virtual host:
mkdir /var/www/lists
Successivamente abilitare il virtual host di apache e riavviare il servizio:
cd /apache2/sites-available/ a2ensite malman.conf /etc/init.d/apache2 restart
Configurazione di Mailman
Editare il file /etc/mailman/mm_cfg.py correggendo le righe seguenti in base ai propri parametri
DEFAULT_URL_PATTERN = 'http://%s/' DEFAULT_EMAIL_HOST = 'lists.example.com' DEFAULT_URL_HOST = 'lists.example.com'
Installare e configurare postfix
Per installare postfix digitare:
aptitude install postfix
Successivamente scegliere nelle opzioni di configurazione “Sito internet”. Poi configurarlo con i comandi seguenti:
postconf -e 'relay_domains = lists.example.com' postconf -e 'mailman_destination_recipient_limit = 1'
Verificare inoltre che nel file /etc/postfix/master.cf sia presente la configurazione per mailman come riprotato sotto:
mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
Definire il transport di postfix con il seguente comando
postconf -e 'transport_maps = hash:/etc/postfix/transport'
e aggiungere il contenuto seguente nel file /etc/postfix/transport
lists.example.com mailman:
eseguire il comando
postmap -v /etc/postfix/transport
e successivamente riavviare postfix con
/etc/init.d/postfix restart
Creare la lista mailman
Lanciare il comando newlist per creare la lista mailman e seguire le istruzioni. Al termine della procedura verranno elencati tutti gli alias come di seguito:
## mailman mailing list 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"
Copiarli in /etc/aliases e lanciare il comando
newaliases /etc/init.d/postfix restart /etc/init.d/malman start
Per rendere attive le modifiche
Creare una nuova lista
Per aggiungere una nuova mailing list è possibile procedere alla sua creazione attraverso l’interfaccia web. Successivamente sarà necessario aggiungere la lista degli alias nel file /etc/aliases. Per ottenere la lista degli alias da incollare è possibile lanciare lo script /var/lib/mailman/bin/genaliases<ref>Come indicato nel manuale di GNU Mailman</ref>. Una volta inserito il file in/etc/aliases. Lanciare il comando:
newaliases
Installazione della traduzione in italiano
A quanto pare<ref>Vedi: http://www.rigacci.org/wiki/doku.php/doc/appunti/linux/sa/mailman</ref> se Debian viene installato in lingua inglese è possibile che ci siano delle difficoltà ad abilitare la traduzione di Mailman in italiano.
Per prima cosa abilitare le seguenti configurazioni di mailman:
DEFAULT_SERVER_LANGUAGE = 'it' DEFAULT_PREFERRED_LANGUAGE = 'it' DEFAULT_AVAILABLE_LANGUAGES = ['it', 'en']
Successivamente verificare che nella cartella /var/lib/mailman/templates sia presente il template IT. Se non è presente occorre scaricare il sorgente della versione di Mailman in uso ed estrarre la cartella IT da collocare nei template.
Problemi di permessi
La fresh installation di mailman su Debian Wheezy non è esente da bug<ref> Vedi Bug#603904</ref> che rendono inaccessibile l’archivio della mailing list. Per correggere il problema si può lanciare lo script check_perms del pacchetto mailman con il flag -f. Questo risolverà i problemi di accesso agli archivi privati ma non agli archivi pubblici. Per risolvere il problema di accesso agli archivi pubblici è necessario intervenire a mano impostando il proprietario della cartella /var/lib/mailman/archives/private a www-data come riportato di seguito:
drwxrws— 8 www-data list 4096 set 10 21:37 private
Note
<references/>