A jelenlegi “felgyorsult” – azonnali üzenetküldést használó – világunkban már kevéssé használt technológia a levelezőlista, ám a 10 évvel ezelőtti “felgyorsult” világ népszerű fórumhelyettesítő megoldása volt. Ha levelezőlistákat szeretnénk üzemeltetni, akkor a kevés lehetőség közül a Mailman nevű programot érdemes használnunk, telepítsük fel:
# yum install mailman
# cd /etc/httpd/conf.d/
# mv mailman.conf hu.javaforum.lists.conf
Majd szerkesszük kicsit az átnevezett állományt:
<VirtualHost *:80>
ServerAdmin auth.gabor@javaforum.hu
DocumentRoot /var/www/html/
ServerName lists.javaforum.hu
Alias /pipermail/ /var/lib/mailman/archives/public/
<Directory /var/lib/mailman/archives/public>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AddDefaultCharset Off
</Directory>
ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/
<Directory /usr/lib/mailman/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
RedirectMatch ^[/]*$ /mailman/listinfo
RedirectMatch ^/mailman[/]*$ /mailman/listinfo
</VirtualHost>
Nagyjából annyit tettünk, hogy létrehoztunk egy lists.javaforum.hu virtuális domain-t, amely majd kiszolgálja a levelezőlistát, ellenőrizzük az Apache Httpd konfigurációját, majd ha minden rendben van, akkor indítsuk újra:
# service httpd configtest
Syntax OK
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
Beállítások
A webes felület beállítását a telepítés során már elvégeztük, a nagyobb beavatkozást a Postfix oldalán kell megejtenünk, mivel a levelezőlista címeit át kell engednie a Mailman programnak, illetve lehetőséget kell adni arra, hogy a Mailman levelet tudjon küldeni.
Első lépésként tanítsuk meg a Postfix-nek, hogy a lists.javaforum.hu domain hozzá tartozik, ezért módosítsuk az alábbi részlet első két sora szerint a /etc/postfix/main.cf tartalmát, majd írjuk hozzá a másik két sort:
mydestination = mail.javaforum.hu, lists.javaforum.hu
relay_domains = $mydestination, lists.javaforum.hu
mailman_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transport
A fenti sorokkal elmagyaráztuk a Postfix számára, hogy a lists.javaforum.hu a sajátja, illetve használja a transport fájl tartalmát, amelynek a végére írjuk hozzá az alábbi egy sort:
lists.javaforum.hu mailman:
Majd alakítsuk adatbázissá:
# postmap /etc/postfix/transport
Ezek után már csak a master.cf fájl végén kell megkeresnünk az alábbi pár sorhoz hasonlót, és módosítani a mailman felhasználó nevét:
mailman unix - n n - - pipe
flags=FR user=mailman argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
A postfix-tomailman.py egy trükkös állomány, mert se a Mailman, se a Postfix csomagban nincs ilyen, külön kell levadászni a netről, vagy innen. Ha a megfelelő helyre másoltuk, akkor újraindíthatjuk a Postfix kiszolgálást, illetve a Mailman programot:
# chkconfig mailman on
# service mailman start
# service postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
Levelezőlista létrehozása
Egy új levelezőlista létrehozása igényel némi kézimunkát, elsőképp az alábbi parancsot kell használnunk:
# /usr/lib/mailman/bin/newlist --urlhost=lists.javaforum.hu --emailhost=lists.javaforum.hu mailman
Add meg a listát működtető e-mail címét: info@javaforum.hu
mailman induló jelszava:
A levelezőlista létrehozásának utolsó lépéséhez az /etc/aliases (vagy
hasonló) állományba a következő sorokat kell elhelyezni, és valószínűleg
futtatni utána a `newaliases' programot:
## mailman levelezőlista
mailman: "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe mailman"
Nyomd meg az entert a(z) mailman tulajdonosának értesítéséhez...
Tegyünk eleget a leírásnak:
# vi /etc/aliases
# newaliases
A levelezőlistánknak működnie kell… 🙂