Mailman - mailové diskusie

Mailman program s otvoreným zdrojovým kódom na správu elektronických poštových diskusií. Mnoho diskusií o otvorenom softvéri (vrátane mailových diskusií Ubuntu mailing lists) používa systém Mailman. Je to mocný systém, ktorý sa dá jednoducho nainštalovať a udržiavať.

Inštalácia

Mailman poskytuje webové rozhranie pre administrátorov a používateľov, používajúce externý mailový server na odosielanie a prijímanie pošty. Pracuje bezchybne s nasledujúcimi servermi:

  • Postfix
  • Exim
  • Sendmail
  • Qmail

Ukážeme si, ako Mailman nainštalovať a ako ho nastaviť aby spolupracoval s webovým serverom Apache a mailovým serverom Postfix alebo Exim. Ak chceme nainštalovať Mailman s iným mailovým serverom, návod nájdeme v zdrojoch na konci tejto časti.

[Note]

Je potrebné nainštalovať iba jeden poštový server a Postfix je predvoleným agentom na prenos pošty v Ubuntu.

Apache2

Návod na inštaláciu systému apache2 sa nachádza v časti HTTPD - Inštalácia.

Postfix

Postup ako nainštalovať a nastaviť Postfix sa nachádza v časti "Postfix"

Exim4

Návod na inštaláciu systému Exim4 sa nachádza v časti "Exim4".

Po nainštalovaní exim4 sa konfiguračné súbory nachádzajú v priečinku /etc/exim4. V Ubuntu je v predvolenom stave konfigurácia exim4 rozdelená do viacerých súborov. Túto vlastnosť môžete zmeniť úpravou nasledujúceho nastavenia v súbore /etc/exim4/update-exim4.conf:

  • dc_use_split_config='true'

Mailman

Ak chceme nainštalovať Mailman, spustíme nasledujúci príkaz v príkazovom riadku:

sudo apt-get install mailman

Tento príkaz skopíruje inštalačné súbory do priečinka /var/lib/mailman, nainštaluje CGI skripty do priečinka /usr/lib/cgi-bin/mailman a vytvorí používateľa list a skupinu list, pod ktorým bude spustený proces mailman.

Konfigurácia

V tejto časti budeme predpokladať, že máme nainštalované systémy mailman, apache2 a postfix alebo exim4. Teraz je potrebné ich nakonfigurovať.

Apache2

Príklad konfiguračného súboru Apache je súčasťou inštalácie systému Mailman a je umiestnený v súbore /etc/mailman/apache.conf. Ak chceme aby Apache použil tento konfiguračný súbor, je potrebné ho nakopírovať do priečinka /etc/apache2/sites-available:

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

Týmto sme nastavili v systéme Aoache novú virtuálnu stanicu - VirtualHost pre administračný web systému Mailman. Teraz novú konfiguráciu zapneme a reštartujeme Apache:

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

Mailman použije systém apache2 na spracovanie a zobrazenie svojich CGI skriptov. CGI skripty systému mailman sú nainštalované v priečinku /usr/lib/cgi-bin/mailman. Preto URL adresa bude http://menostanice/cgi-bin/mailman/. Ak by sme chceli túto skutočnosť zmeniť, môžeme to urobiť zmenou konfigurácie v súbore /etc/apache2/sites-available/mailman.conf.

Postfix

Integráciu so systémom Postfix dosiahneme tak, že priradíme doménu diskusia.nieco.sk. Doménu diskusia.nieco.sk môžeme nahradiť takou, ktorú si zvolíme.

Pomocou príkazu postconf pridáme potrebné konfiguračné nastavenia do súboru /etc/postfix/main.cf:

sudo postconf -e 'relay_domains = diskusia.nieco.sk'
sudo postconf -e 'transport_maps = hash:/etc/postfix/transport'
sudo postconf -e 'mailman_destination_recipient_limit = 1'

V súbore /etc/postfix/master.cf pre istotu dvakrát skontrolujeme, či máme definovaný nasledujúci transport:

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

Tento transport volá skript postfix-to-mailman.py vždy, keď je mail doručený do diskusie.

Doménu diskusia.nieco.sk priradíme k transportu systému Mailman spolu s transportnou mapou. Otvoríme súbor /etc/postfix/transport a upravíme ho:

diskusia.nieco.sk      mailman:

Teraz v systéme Postfix vytvoríme transportnú mapu zadaním nasledujúceho príkazu do príkazového riadka:

sudo postmap -v /etc/postfix/transport

Potom Postfix reštartujeme, aby sa nová konfigurácia prejavila:

sudo /etc/init.d/postfix restart

Exim4

Po nainštalovaní systému Exim4 ho môžeme spustiť pomocou nasledujúceho príkazu:

sudo /etc/init.d/exim4 start

Aby mailman spolupracoval so systémom Exim4, je potrebné nakonfigurovať Exim4. Ako sme už spomínali, v predvolenom stave Exim4 používa viacero konfiguračných súborov rozdielnych typov. Viac informácií sa nachádza na stránke Exim. Aby sme mohli mailman spustiť, je potrebné pridať nové konfiguračný súbor do nasledujúcich typov:

  • Main
  • Transport
  • Router

Exim vytvára hlavý konfiguračný súbor usporiadaním všetkých týchto mini konfiguračných súborov, preto je poradie týchto konfiguračných súborov veľmi dôležité.

Main

Všetky konfiguračné súbory typu main (hlavné) sú uložené v priečinku /etc/exim4/conf.d/main/. Vytvoríme nový súbor s nasledujúcim obsahom, ktorý nazveme 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

Všetky konfiguračné súbory typu transport (prenos) sú uložené v priečinku /etc/exim4/conf.d/transport/. Vytvoríme nový súbor s nasledujúcim obsahom, ktorý nazveme 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

Všetky konfiguračné súbory typu router (smerovač) sú uložené v priečinku /etc/exim4/conf.d/router/. Vytvoríme nový súbor s nasledujúcim obsahom, ktorý nazveme 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
[Warning]

Poradie konfiguračných súborov main a transport môže mať ľubovoľné poradie, ale poradie konfiguračných súborov typu router musí byť rovnaké. Tento čiastkový súbor musí byť skôr ako súbor 200_exim4-config_primary. Tieto dva konfiguračné súbory obsahujú rovnaké typy informácií. Prvý aplikovaný súbor má prednosť. Viac informácií nájdete v zdrojoch na konci tejto časti.

Mailman

Po nainštalovaní systému mailman ho môžeme spustiť nasledujúcim príkazom:

sudo /etc/init.d/mailman start

Keď je systém mailman nainštalovaný, môžeme vytvoriť predvolenú mailovú diskusiu. Spustíme nasledujúci príkaz, ktorý diskusiu vytvorí:

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...

  # 

Ak sme nastavili Postfix alebo Exim4 tak, aby rozpoznávali emaily z diskusie, nie je potrebné vytvárať nové záznamy v súbore /etc/aliases. Ak sme v konfiguračných súboroch vykonali akékoľvek zmeny, nesmieme zabudnúť reštartovať príslušné služby.

[Note]

Exim4 nepoužíva predchádzajúce aliasy na preposielanie mailov do systému Mailman, pretože používa na nadviazanie kontaktu discover. Keď chcete počas vytvárania diskusie aliasy potlačiť, môžete pridať riadok MTA=None do konfiguračného súboru /etc/mailman/mm_cfg.py.

Administrácia

Budeme predpokladať, že máme predvolenú inštaláciu. Cgi skripty systému mailman sú stále v priečinku /usr/lib/cgi-bin/mailman/. Mailman poskytuje webové administračné rozhranie, ku ktorému sa dostaneme tak, že do prehliadača zadáme nasledujúcu URL adresu:

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

Na obrazovke sa zjaví predovlená mailová diskusia - mailman. Ak klikneme na názov diskusie, bude potrebné zadať atentifikačné heslo. Ak zadáme správne heslo (to ktoré sme zadali ako Initial mailman password), budeme môcť meniť administračné nastavenia tejto mailovej diskusie. Novú mailovú diskusiu môžeme vytvoriť pomocou nástroja príkazového riadka (/usr/sbin/newlist). Novú mailovú diskusiu j možné vytvoriť aj pomocou webového rozhrania.

Používatelia

Mailman poskytuje webové rozhranie aj pre používateľov. Toto rozhranie otvoríme zadaním nasledujúcej URL adresy do prehliadačal:

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

Na obrazovke sa zjaví predvolená mailová diskusia - mailman. Ak klikneme na názov diskusie, zobrazí sa registračný formulár. Môžeme do neho zadať svoju emailovú adresu, meno (nepovinne) a heslo. Po zaregistrovaní, nám príde uvítací email a ďalej sa budeme riadiť podľa jeho inštrukcií.

Zdroje

GNU Mailman - Installation Manual

HOWTO - Using Exim 4 and Mailman 2.1 together

Za pozretie stojí aj stránka Mailman Ubuntu Wiki.