## Mailman

Mailman è un programma open source per la gestione di discussioni elettroniche e newsletter. Molte mailing list open source (incluse tutte le mailing list di Ubuntu) utilizzano Mailman come software. È molto potente e facile da installare.

### Installazione

Mailman fornisce un'interfaccia web per gli amministratori e per gli utenti ed è quindi richiesto Apache con il supporto mod_perl. Mailman utilizza un server mail esterno per inviare e ricevere le email e funziona molto bene con i seguenti server mail:

- Postfix

- Exim

- Sendmail

- Qmail

Viene descritto come installare Mailman, il server web Apache e il server mail Postfix o Exim. Per installare Mailman con un server mail diverso, fare riferimento alla sezione «Riferimenti».

È necessario installare solamente un server mail e Postfix è il Mail Transfer Agent predefinito di Ubuntu.

#### Apache2

Per maggiori informazioni su come installare apache2, consultare Installare HTTPD.

#### Postfix

Per le istruzioni su come installare e configurare Postfix, consultare la sezione chiamata «Postfix»

#### Exim4

Per installare Exim4, consultare refer to la sezione chiamata «Exim4».

Una volta installato exim4, i file di configurazione sono salvati nella directory `/etc/exim4`. In Ubuntu, in modo predefinito, i file di configurazione di exim4 sono divisi tra vari file, ma è possibile cambiare questo comportamento modificando la seguente variabile nel file `/etc/exim4/update-exim4.conf`:

- dc_use_split_config='true'

#### Mailman

Per installare Mailman, in un terminale, digitare il seguente comando:

    sudo apt-get install mailman

Questo copia i file di installazione nella directory /var/lib/mailman, gli script CGI nella directory /usr/lib/cgi-bin/mailman, crea l'utente list e il gruppo list. Il proprietario del processo mailman sarà l'utente creato.

### Configurazione

Questa sezione ha come presupposto l'avvenuta installazione di mailman, apache2 e di postfix o exim4. Ora è solo necessario configurarle.

#### Apache2

Un file di esempio di Apache è disponibile con Mailman ed è localizzato in `/etc/mailman/apache.conf`. Affinché Apache possa utilizzare il file di configurazione è necessario copiarlo in `/etc/apache2/sites-available`:

    sudo cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf

In questo modo verrà configurato un nuovo VirtualHost per il sito di amministrazione di Mailman. Ora è necessario abilitare la configurazione e riavviare Apache:

    sudo a2ensite mailman.conf
    sudo /etc/init.d/apache2 restart

Mailman utilizza apache2 per eseguire gli script CGI. Gli script CGI di mailman sono installati all'interno della directory /usr/lib/cgi-bin/mailman e l'URL di mailman risulta quindi "http://hostname/cgi-bin/mailman/". È possibile apportare cambiamenti al file `/etc/apache2/sites-available/mailman.conf` per modificarne il comportamento.

#### Postfix

Per l'integrazione di Postfix, verrà associato il dominio "lists.example.com" con le seguenti mailing list. Sostituire lists.example.com con il proprio dominio.

È possibile usare il comando postconf per aggiungere la configurazione necessaria in `/etc/postfix/main.cf`:

    sudo postconf -e 'relay_domains = lists.example.com'
    sudo postconf -e 'transport_maps = hash:/etc/postfix/transport'
    sudo postconf -e 'mailman_destination_recipient_limit = 1'

Controllare che in `/etc/postfix/master.cf` sia presente quanto segue:

    mailman   unix  -       n       n       -       -       pipe
      flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
      ${nexthop} ${user}

Invoca lo script postfix-to-mailman.py quando viene ricevuta una mail in una lista.

Associare il dominio "lists.example.com" a Mailman con la mappa dei metodi "transport". Modificare il file `/etc/postfix/transport`:

    lists.example.com      mailman:

Ora è necessario far generare a Postfix la mappa "transport" digitando, in un terminale:

    sudo postmap -v /etc/postfix/transport

Riavviare Postfix per abilitare le nuove configurazioni:

    sudo /etc/init.d/postfix restart

#### Exim4

Una volta installato Exim4, è possibile avviare il server Exim digitando, in un terminale, il seguente comando:

    sudo /etc/init.d/exim4 start

Affinché mailman funzioni con exim4, è necessario configurare exim4. Come indicato precedentemente, in modo predefinito, exim4 utilizza molteplici file di configurazione di diversi tipi. Per i dettagli, fare riferimento al sito web di Exim. Per avviare mailman, è necessario aggiungere un nuovo file di configurazione ai seguenti tipi di configurazione:

- Main

- Transport

- Router

Exim creerà un file di configurazione principale ordinando tutti questi mini-file; l'ordine di questi ultimi è quindi molto importante.

#### Main

Tutti i file di configurazione appartenenti al tipo main sono archiviati nella directory `/etc/exim4/conf.d/main/`. È possibile aggiungere il seguente contenuto a un nuovo file di configurazione chiamato `04_exim4-config_mailman`:

    # start
    # Home dir for your Mailman installation -- aka Mailman's prefix
    # directory.
    # On Ubuntu this should be "/var/lib/mailman"
    # This is normally the same as ~mailman
    MM_HOME=/var/lib/mailman
    #
    # User and group for Mailman, should match your --with-mail-gid
    # switch to Mailman's configure script. Value is normally "mailman"
    MM_UID=list
    MM_GID=list
    #
    # Domains that your lists are in - colon separated list
    # you may wish to add these into local_domains as well
    domainlist mm_domains=hostname.com
    #
    # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    #
    # These values are derived from the ones above and should not need
    # editing unless you have munged your mailman installation
    #
    # The path of the Mailman mail wrapper script
    MM_WRAP=MM_HOME/mail/mailman
    #
    # The path of the list config file (used as a required file when
    # verifying list addresses)
    MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
    # end

#### Transport

Tutti i file di configurazione appartenenti al tipo transport sono archiviati nella directory `/etc/exim4/conf.d/transport/`. È possibile aggiungere il seguente contenuto a un nuovo file di configurazione chiamato `40_exim4-config_mailman`:

      mailman_transport:
       driver = pipe
       command = MM_WRAP \
                   '${if def:local_part_suffix \
                        {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
                        {post}}' \
                   $local_part
        current_directory = MM_HOME
        home_directory = MM_HOME
        user = MM_UID
        group = MM_GID

#### Router

Tutti i file di configurazione appartenenti al tipo router sono archiviati nella directory `/etc/exim4/conf.d/router/`. È possibile aggiungere il seguente contenuto a un nuovo file di configurazione chiamato `101_exim4-config_mailman`:

      mailman_router:
       driver = accept
       require_files = MM_HOME/lists/$local_part/config.pck
       local_part_suffix_optional
       local_part_suffix = -bounces : -bounces+* : \
                          -confirm+* : -join : -leave : \
                          -owner : -request : -admin
       transport = mailman_transport

L'ordine dei file di configurazione main e transport può essere qualsiasi. L'ordine dei file di configurazione del tipo router deve essere lo stesso. Questo particolare file deve apparire prima del file `200_exim4-config_primary`. Questi file contengono le stesse informazioni, ma il primo ha la precedenza. Per maggiori informazioni fare riferimento alla sezione «Riferimenti».

#### Mailman

Una volta installato mailman, è possibile avviarlo usando il seguente comando:

    sudo /etc/init.d/mailman start

Creare quindi la mailing list predefinita. Per crearla, eseguire il seguente comando:

    sudo /usr/sbin/newlist mailman

      Enter the email address of the person running the list: bhuvan at ubuntu.com
      Initial mailman password:
      To finish creating your mailing list, you must edit your /etc/aliases (or
      equivalent) file by adding the following lines, and possibly running the
      `newaliases' program:

      ## 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"

      Hit enter to notify mailman owner..

      #

Postfix o Exim4 sono stati configurati per riconoscere tutte le email di mailman ed è ora obbligatorio creare le nuove voci in `etc/aliases`. Se sono state apportate modifiche ai file di configurazione, assicurarsi di riavviare tali servizi prima di continuare.

### Amministrazione

Si assume che sia stata fatta un'installazione di base. Gli script cgi di mailman si trovano nella directory /usr/lib/cgi-bin/mailman/. Mailman fornisce uno strumento di amministrazione basato sul web, per accedere alla relativa pagina, aprire con il browser il seguente url:

http://hostname/cgi-bin/mailman/admin

La mailing list di base, mailman, comparirà in questa schermata. Facendo clic sul nome della mailing list, verrà richiesta la password di autenticazione. Se viene inserita la password corretta sarà possibile modificare le preferenze di amministrazione di questa mailing list. È possibile creare una nuova mailing list usando l'utilità a riga di comando (/usr/sbin/newlist). In alternativa, è possibile creare una nuova mailing list usando l'interfaccia web.

### Utenti

Mailman fornisce un'interfaccia web per gli utenti. Per accedere a questa pagina, indirizzare il browser web al seguente URL:

http://hostname/cgi-bin/mailman/listinfo

La mailing list predefinita, mailman, compare a schermo. Facendo clic sul nome, viene presentato il modulo di iscrizione. È possibile inserire il proprio indirizzo email, il nome (opzionale) e la password per completare l'iscrizione. Viene così inviata una email di invito all'indirizzo specificato. È possibile seguire le istruzioni contenute nell'email per completare l'iscrizione.

### Riferimenti

GNU Mailman - Manuale di installazione

HOWTO - Using Exim 4 and Mailman 2.1 together

Server Dovecot |  | Filtrare le email