Exim4 tippek

A HupWiki-ből...

Tartalomjegyzék

Bevezető

Új vagyok az Exim4-ben. Volt vele pár gondom, amire csak nagy nehezen találtam megoldást, ezért úgy gondolom, hogy mindenki számára hasznos lehet az alábbi pár beállítási tipp, még ha a leírás sok helyen hiányos is. Minden elérési útvonal és az összes update-exim4.conf... bűvészkedés Debian Sarge (vagy újabb) disztribúcióra vonatkozik, más terjesztések ettől merőben eltérhetnek.

Alap Exim4 config

Az alap konfigurációt a 'dpkg-reconfigure exim4-config' futtatásával állíthatjuk be. Az ez által létrehozott fájl alaphelyzetben az /etc/exim4/update-exim4.conf.conf Itt találhatóak az Exim4 számára globális változók, azaz a legfontosabb beállítások.

A config fájl(ok)ról

Az Exim4 config fájlok az /etc/exim4 könyvtárban találhatóak. Ha a csomag telepítésénél azt választottuk ki hogy ne sok kis fájlba tárolja a beállításokat, az összes beállítást az exim4.conf.template fájlban találhatjuk meg. Egyébként pedig a program a conf.d és ennek az alkönyvtáraiban található kis fájlokat fűzi össze.

Ha a sok kis fájlos megoldást választjuk, akkor két lépésből áll a végleges configfájl elkészítése. Először az update-exim4.conf.template fogja, és összefésüli a conf.d mappában található fájlokat egy nagy exim4.conf.template állományba. Majd ezután jöhet a végleges --már az exim daemon által is használt-- configfájl elkészítése az update-exim4.conf scripttel. (Ez készíti el a végleges configot, amit a /var/lib/exim4/ könyvtárba tesz.) Ha nem akarjuk különbontani a beállításokat apró fájlokra, a szerkesztések után elmarad az update-exim4.conf.template futtatása, elég csak a második script. Szerencsére az exim4-et indító init script minden egyes start/restart/reload alkalmával elvégzi helyettünk az update-exim4.conf futtatását ezzel jelentősen csökkentve a felesleges "miért-nem-történt-semmi-pedig-reloadoltam"-típusú hajtépések számát.

Fontos! Az automatikusan generált fájlt ne szerkesszük, mert ez az update-exim4.conf legközelebbi futtatásával minden módosításunk odavész!

Figyelj a dc_other_hostnames beállítására!

Ha megadod a géped domain nevét a dc_other_hostnamesben (update-exim4.conf.conf fájl), nem fogja tudni kikézbesíteni a többi megadott domainre az emaileket az Exim. Ilyen hibát fog dobni: lowest numbered MX record points to local host. Tehát itt ne add meg a géped domain nevét, csak a többi domainnevet írd be, ami a gépedre mutat és fogadni akarsz leveleket rá.

pl. ha a gépünk valami.hu, rá mutat még a proba.hu, akkor így csináljuk: dc_other_hostnames='proba.hu'

/etc/aliases nem működik normálisan?

Ha így adod meg az aliasesben a bejegyzéseket:

postmaster@domain.hu: nonoo

akkor a postmaster, vagy a postmaster@domain.hu címre küldött emaileket az exim Unroutable address hibaüzenettel vissza fogja dobni. Csak úgy működik rendesen ha így írod az aliast:

postmaster: nonoo

Mivel én nem vagyok híve a globális aliasoknak, gyorsan körülnéztem az exim4.conf.template fájlban, a 988. sor környékén (ez a router/400_exim4-config_system_aliases rész) ezt a sort találtam:

data = ${lookup{$local_part}lsearch{/etc/aliases}}

Ezt kell lecserélni erre:

data = ${lookup{$local_part@$domain}lsearch{/etc/aliases}}

Mailman Exim4hez

Keressük meg a 'begin routers' részt az exim4.conf.template fájlban, majd illesszük be alá:

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

Ezután keressük meg a 'begin transports' részt, ez alá illesszük ezt:

 mailman_transport:
   driver = pipe
   command = MAILMAN_WRAP \
             '${if def:local_part_suffix \
                   {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
                   {post}}' \
             $local_part
   current_directory = MAILMAN_HOME
   home_directory = MAILMAN_HOME
   user = MAILMAN_USER
   group = MAILMAN_GROUP

Végül a fájl elejére valahova illesszük be:

# Home dir for your Mailman installation -- aka Mailman's prefix
# directory.
MAILMAN_HOME=/var/lib/mailman
MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script.
MAILMAN_USER=mailman
MAILMAN_GROUP=daemon

Ezután futtassuk le az update-exim4.conf scriptet. Ha hibát jelez, valószínűleg a mailman felhasználó nem létezik. Ekkor adjuk ki ezt a parancsot:

adduser --disabled-login --no-create-home mailman

Ha már van létező mailman listánk, akkor annak működését az 'exim4 -bt listaneve' paranccsal tudjuk leellenőrizni. Kb. ilyet kell visszaadni ha helyesen megy:

listaneve@domain.hu
 router = mailman_router, transport = mailman_transport

Ez jelzi hogy az erre a címre érkező emaileket a mailman_router és a mailman_transport beállításainak megfelelően fogja kezelni az Exim4.

--Nonoo 2005. október 5., 11:35 (CEST)