Mailman

Domyślnie Mailman oczekuje, że będzie mógł samodzielnie tworzyć aliasy na serwerze pocztowym oraz wysyłać maile bez uwierzytelnienia z dowolnym nadawcą. Nie jest to możliwe w środowisku współdzielonym. Celem tego opisu jest przede wszystkim pokazanie jak można obejść opisaną w dokumentacji tego programu integrację z serwerem pocztowym, jednak nie zastąpi on samej dokumentacji Mailmana. Jeżeli postępując zgodnie opisem napotkasz problemy z którymi nie będziesz mógł sobie poradzić, napisz do nas na admin@megiteam.pl

Instalacja na serwerze

1. Pobierz źródła Mailmana na swoje konto

wget http://ftp.gnu.org/gnu/mailman/mailman-2.1.12.tgz

Rozpakuj poleceniem

tar zxvf mailman-2.1.12.tgz

2. Nałóż łatkę dzięki której Mailman będzie umiał uwierzytelnić się do serwera pocztowego

cd mailman-2.1.12
wget http://www.megiteam.pl/site_media/mailman-smtpauth.patch
patch -p1 < mailman-smtpauth.patch

Jeżeli zobaczysz coś takiego

user@megiteam:~/mailman-2.1.12$ patch -p1 < mailman-smtpauth.patch
patching file Mailman/Defaults.py.in
Hunk #1 succeeded at 433 (offset -8 lines).
patching file Mailman/Handlers/SMTPDirect.py

to znaczy, że łatka nałożyła się poprawnie.

3. Skonfiguruj i zainstaluj Mailmana

./configure --prefix=$HOME/mailman --with-username=<TwójLogin> --with-groupname=<TwójLogin>
--with-cgi-gid=<TwójLogin> --with-mail-gid=<TwójLogin>
make
make install

Mailman zostanie zainstalowany w katalogu ~/mailman. Oczywiście możesz podać inną ścieżkę.

Wykonaj polecenie

~/mailman/bin/check_perms

aby sprawdzić czy wszystkie pliki mają odpowiednie uprawnienia. To samo polecenie z opcją -f

~/mailman/bin/check_perms -f

ustawi uprawnienia

Konfiguracja GUI

4. Zaloguj się do naszego panelu administracyjnego i dodaj nową aplikację CGI. Jako katalog wskaż mailman/cgi-bin Nie zapomnij o dodaniu domeny pod którą chcesz mieć GUI. Po tych operacjach pod adresem

http://TwojaDomena/admin

powinieneś zobaczyć stronę Mailmana. Zwróc uwagę, że generowane linki wyglądają tak:

http://TwojaDomena/mailman/listinfo

a po kliknięciu na nie dostaniesz 404. Aby taki adres działał musiałbyś w katalogu cgi-bin mieć podkatalog mailman a w nim skrypty, które domyślnie są w cgi-bin/. Są dwie możliwości:

  • albo utworzysz na serwerze katalog ~/mailman/cgi-bin/mailman i przeniesiesz do niego zawartość ~/mailman/cgi-bin
  • albo zmienisz generowane URLe, dzięki czemu będziesz miał krótsze adresy

To pierwsze rozwiązanie jest proste ale mało eleganckie, więc zrobimy drugim sposobem :)

5. W pliku ~/mailman/Mailman/Defaults.py jest domyślna konfiguracja Mailmana. Znajdziesz tam opcję

DEFAULT_URL_PATTERN = 'http://%s/mailman/'

Uwaga: nie zmieniaj niczego w tym pliku. Do ustawiania własnej konfiguracji służy plik ~/mailman/Mailman/mm_cfg.py. Dodaj w nim

DEFAULT_URL_PATTERN = 'http://%s/'

Po zapisaniu zmian URLe powinny być już poprawne.

Konfiguracja Mailmana

6. Skoro jesteś już przy pliku konfiguracyjnym to ustaw inne potrzebne opcje:

DEFAULT_EMAIL_HOST = 'TwójLogin.megiteam.pl' (albo domena, którą dodałeś w panelu)
DEFAULT_URL_HOST = 'domena, którą dodałeś w panelu'
SMTPHOST = 'TwójLogin.megiteam.pl' (lub inny serwer przez który chcesz wysyłać pocztę)
SMTP_AUTH = True
SMTP_LOGIN = 'konto e-mail, którym Mailman będzie uwierzytelniał się do serwera pocztowego (załóż w panelu)' 
SMTP_PASSWD = 'hasło do tego konta' 
SMTP_USE_TLS = True
SMTP_HELO_HOST = 'TwójLogin.megiteam.pl'

Być może będziesz zainteresowany również zmianą innych opcji z Defaults.py.

7. Dodaj główną listę mailingową poleceniem

~/mailman/bin/newlist mailman

8. Jeżeli założyłeś już dla Mailmana konto pocztowe w naszym panelu, dodaj do niego następujące aliasy:

mailman #chyba, że konto pocztowe już nazwałeś mailman
mailman-admin
mailman-bounces
mailman-confirm
mailman-join
mailman-leave
mailman-owner
mailman-request
mailman-subscribe
mailman-unsubscribe

Trochę się naklikasz, ale na razie jest to jedyna metoda. Docelowo będziemy chcieli dodać zakładanie list mailingowych w panelu i ten opis znacznie się uprości.

Uwaga: dla każdej założonej listy mailingowej konieczne będzie dodanie do głównego konta mailowego (tego, który podałeś w konfiguracji Mailmana) podobnych aliasów.

9. Uruchom

~/mailman/bin/mailmanctl start

Mailman uruchomi kilka potrzebnych mu do szczęscia procesów.

Powinieneś już móc korzystać z list mailinowych. Możesz je zakładać z shella poleceniem

~/mailman/bin/newlist NazwaListy

lub wyklikując je przez GUI Mailmana.