Mailman

Skip to end of metadata
Go to start of metadata

5.2.9. Levelezőlisták

A levelezőlista kiszolgálók alapvető feladata, hogy egy üzenetet több email címre juttasson el, s viszonylag kevés élőmunkával valósítsák meg a felhasználók kezelését, a legjobb, ha maguk a felhasználók képesek feliratkozni, leiratkozni illetve egyéb műveleteket végezni. Erre a célra a mailman jó választás lehet, mivel ez a program már bizonyított az viszonylag hosszú élete során.

Klónozzuk a template fájlrendszert, hozzuk létre belőle a mailman jail-t, hozzunk létre egy új fájlrendszert, amelyet csatoljuk a jail /data helyre. Állítsuk be a jail paramétereit, indítsuk el, majd telepítsük fel a postfix programot, a mailman programot (a POSTFIX opcióval), illetve egy apache is kell (apache 2.2.x), amely majd a webes felületet kezeli.

5.2.9.1. A postfix beállításai

A postfix beállítása már szinte rutin kell legyen, az alábbi részletet kell a main.cf végére írnunk:

/usr/local/etc/postfix/main.cf
queue_directory = /data/postfix
myhostname = mailman.jails.javaforum.hu
mydomain = mailman.jails.javaforum.hu
myorigin = mailman.jails.javaforum.hu
mydestination = mailman.jails.javaforum.hu, lists.javaforum.hu
mynetworks = 127.0.0.0/8, 192.168.1.0/24, 192.168.2.0/24

alias_maps = hash:/etc/aliases
relayhost = [mail.jails.javaforum.hu]

Ezen túl a postfix könyvtárát át kell helyeznünk a megadott helyre:

Parancssor
[root@mailman:~]$ mv /var/spool/postfix/ /data/

A /etc/rc.conf állományban tiltsuk le a sendmail futását és engedélyezzük a postfix elindulását:

/etc/rc.conf
sendmail_enable="NONE"
postfix_enable="YES"

A postfix ezzel üzemkész, egyedül arra kell figyelni, hogy a mail jail-ben futó postfix tudjon a mailman jail-ben használt lists.javaforum.hu doménről, egyszerűen csak hozzá kell adnunk a spam.javaforum.hu doménhez hasonlóan a transport adatbázishoz:

/usr/local/etc/postfix/transport
lists.javaforum.hu      relay:[mailman.jails.javaforum.hu]:25

5.2.9.2. A Mailman beállításai

A mailman telepítése előtt be kell állítani egy környezeti változót, mivel hiába mondjuk meg, hogy postfix a levelezőszerver, a fordítás során hibásan állítja be a szkriptek csoportát:

Parancssor
[root@mailman:]$ export MAIL_GID=nobody
[root@mailman:]$ portinstall -i mailman
[...]

A Mailman a /usr/local/mailman könyvtárban lakik, a részletes beállításait most mellőzném, a lényeg, hogy vegyük hozzá az mm_cfg.py fájl végére a beállításainkat:

/usr/local/mailman/Mailman/mm_cfg.py
SMTPHOST = 'mail.jails.javaforum.hu'
DEFAULT_URL_HOST = 'lists.javaforum.hu'
DEFAULT_EMAIL_HOST = 'lists.javaforum.hu'
VIRTUAL_HOSTS.clear()
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

LIST_DATA_DIR = os.path.join('/data', 'lists')
PUBLIC_ARCHIVE_FILE_DIR = os.path.join('/data', 'archives', 'public')
PRIVATE_ARCHIVE_FILE_DIR = os.path.join('/data', 'archives', 'private')

A szervernevek megadásán kívül gyakorlatilag arra utasítjuk, hogy a listák adatait és az archívumot a /data alatt keresse. Ehhez természetesen át kell azokat mozgatni oda:

Parancssor
[root@mailman:~]$ mv /usr/local/mailman/lists/ /data/
[root@mailman:~]$ mv /usr/local/mailman/archives/ /data/

Majd hozzuk létre a mailman nevű levelezőlistát:

Parancssor
[root@mailman:~]$ /usr/local/mailman/bin/newlist mailman
Enter the email of the person running the list: info@javaforum.hu
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:              "|/usr/local/mailman/mail/mailman post mailman"
mailman-admin:        "|/usr/local/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/usr/local/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/usr/local/mailman/mail/mailman confirm mailman"
mailman-join:         "|/usr/local/mailman/mail/mailman join mailman"
mailman-leave:        "|/usr/local/mailman/mail/mailman leave mailman"
mailman-owner:        "|/usr/local/mailman/mail/mailman owner mailman"
mailman-request:      "|/usr/local/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/usr/local/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/usr/local/mailman/mail/mailman unsubscribe mailman"

Hit enter to notify mailman owner...

Az itt listázott sorokat adjuk hozzá a /etc/aliases állományhoz, majd futtassuk le a `newaliases` parancsot. A mailman és a postfix most már képes lesz együttműködni, csak hozzá kell adnunk a /etc/rc.conf állományhoz:

/etc/rc.conf
mailman_enable="YES"

A mailman részletes beállításaira most nem térnék ki – azt olvashatjuk a program dokumentációjában. A lényeg az, hogy a levelezőlistát két irányból érhetjük el, az egyik irány a levelezés, a másik irány a webes felület. A webes felületet tegyük félre kicsit, foglalkozzunk az email címekkel. A mailman címei virtuális címek, ha azokra érkezik egy levél, akkor a postfix az aliases adatbázis alapján elindítja rá a mailman megfelelő programját.

Új levelezőlista felvételéhez egyszerűen a mailman newlist programját kell használnunk:

Parancssor
root@mailman:~]$ /usr/local/mailman/bin/newlist
Enter the name of the list: kocsma
Enter the email of the person running the list: info@javaforum.hu
Initial kocsma 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:

## kocsma mailing list
kocsma:              "|/usr/local/mailman/mail/mailman post kocsma"
kocsma-admin:        "|/usr/local/mailman/mail/mailman admin kocsma"
kocsma-bounces:      "|/usr/local/mailman/mail/mailman bounces kocsma"
kocsma-confirm:      "|/usr/local/mailman/mail/mailman confirm kocsma"
kocsma-join:         "|/usr/local/mailman/mail/mailman join kocsma"
kocsma-leave:        "|/usr/local/mailman/mail/mailman leave kocsma"
kocsma-owner:        "|/usr/local/mailman/mail/mailman owner kocsma"
kocsma-request:      "|/usr/local/mailman/mail/mailman request kocsma"
kocsma-subscribe:    "|/usr/local/mailman/mail/mailman subscribe kocsma"
kocsma-unsubscribe:  "|/usr/local/mailman/mail/mailman unsubscribe kocsma"

Hit enter to notify kocsma owner...

Ha ezt is hozzáadjuk a /etc/aliases fájlhoz, akkor már működik a levelező listánk...

5.2.9.3. A mailman webes felülete

A mailman alatt vannak perl alapú cgi-bin programok, amelyek webes felületet állítanak elő, s ezekhez kell egy olyan webszerver, amely képes cgi-bin futtatására. Egy Apache erre a feladatra kissé túlzás, de megteszi...

Vegyünk fel az apache22 alá egy új virtuális host-ot:

/usr/local/etc/apache22/Includes/mailman.conf
NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin auth.gabor@javaforum.hu
    DocumentRoot /usr/local/www/
    ServerName lists.javaforum.hu

    <Directory "/data/archives/public/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    <Directory "/usr/local/mailman/cgi-bin/">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>

    Alias /pipermail/ "/data/archives/public/"
    ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/"
</VirtualHost>

Ha felvesszük a /etc/rc.conf állományban az apache22 elindítását, majd elindítjuk az Apache szolgáltatást, akkor az vígan kiszolgálja mailman igényeit, bár ennél többre is képes, kicsit vágjuk vissza az igényeit:

Ha csinálunk át átmeneti átirányítást a 192.168.2.8:80 port felé, akkor ki is tudjuk próbálni, hogy jól működik-e.

Az Apache alapból nem képes naplózni a Syslog használatával, alapból a /var/log/ könyvtárba írja a httpd-access.log illetve a httpd-error.log fájlba vég nélkül az információkat, így a jail fájlrendszere hamar megtelik. A Webszerver fejezetben leírtam, miképp kell az Apache kiszolgálót Syslog használatára kényszeríteni.

Előző fejezet Tartalomjegyzék Következő fejezet


Auth Gábor auth.gabor@javaforum.hu


Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.