Wenn Du Sendmail installierst, solltest Du besonders darauf achten,
daß Du den kompletten Satz an Configurations-Files installierst,
welcher sich bei Slackware in dem Paket smailcnf.tgz
versteckt.
Diese Configurations-Files finden sich in einem Verzeichnisbaum unter
/usr/src/sendmail/cf
. In diesem Verzeichnis sollte sich auch
ein knapp 50KB großes README befinden, daß die neue
Konfigurationsmethode beschreibt.
Obwohl Sendmail über ein gewöhnlich gut 20KB großes
Configurations-File (/etc/sendmail.cf
) gesteuert wird, mußt
man dieses File nicht selber schreiben (das denken nämlich die meisten
Leute, die von Sendmail abgeschreckt werden). Vielmehr benötigt man
den Macroprozessor M4, und ein kleines Konfigurationsfile (mc-File) in
/usr/src/sendmail/cf/cf
. M4 erzeugt dann aus dem mc-File und
den anderen (vom User normalerweise nicht zu ändernden) Config-Files
das sendmail.cf
-File.
Zunächst einmal muß FidoGate allerdings noch bekannt gemacht werden.
Hierzu muß das File /usr/src/sendmail/cf/mailer/ftn.m4
mit
folgendem Inhalt angelegt werden:
PUSHDIVERT(-1) # # /usr/src/sendmail/cf/mailer/ftn.m4 # # FIDOGATE FTN mailer for sendmail V8 # # MAILER(smtp) and MAILER(uucp) must be included! # ifdef(`FTN_MAILER_PATH',, `define(`FTN_MAILER_PATH', /usr/local/lib/fidogate/rfc2ftn)') ifdef(`FTN_MAILER_ARGS',, `define(`FTN_MAILER_ARGS', `rfc2ftn -w normal $u')') ifdef(`FTN_MAILER_FLAGS',, `define(`FTN_MAILER_FLAGS', `')') ifdef(`FTN_MAX_SIZE',, `define(`FTN_MAX_SIZE', 100000)') POPDIVERT ##################################### ### FTN Mailer specification ### ##################################### VERSIONID(`ftn.m4 V1.5') ifdef(`_MAILER_smtp_', `# FIDOGATE mailer Mftn, P=FTN_MAILER_PATH, F=CONCAT(mDFMhu, FTN_MAILER_FLAGS), S=52/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), A=FTN_MAILER_ARGS ')
Wie man sieht, ist die Konfiguration zur Verwendung von rfc2ftn nicht allzu aufwendig, aber was da genau passiert, braucht uns auch nicht zu kümmern, wir verwenden den eben definierten Mailer "ftn" jetzt einfach, wie die vordefinierten Mailer "smtp", "uucp" etc.
Kommen wir also nun zur Konfiguration des mc-Files. Ich habe es
spinnaker.mc
genannt, aber der Name tut nichts zur Sachen, das
File sollte nur in /usr/src/sendmail/cf/cf
liegen. spinnaker.mc
sieht bei mir so aus:
# /usr/src/sendmail/cf/cf/spinnaker.mc # # sendmail V8 configuration for spinnaker.rhein.de # using UUCP and FidoGate # include(`../m4/cf.m4') VERSIONID(`spinnaker.mc V1.16') OSTYPE(linux)dnl define(`confUSE_ERRORS_TO', `True')dnl define(`confCOPY_ERRORS_TO', `postmaster')dnl define(`confMIME_FORMAT_ERRORS', `False')dnl FEATURE(notsticky)dnl FEATURE(mailertable,hash -o /etc/sendmail/mailertable)dnl FEATURE(always_add_domain)dnl FEATURE(nodns)dnl FEATURE(nocanonify)dnl MAILER(local)dnl MAILER(ftn)dnl MAILER(smtp)dnl MAILER(uucp)dnl Cwspi spi.rhein.de Cwp13 p13.flokiste.fido.de Cwp13.f111.n2450.z2.fido.sub.de Cwp13.f64.n100.z21.ger.sub.de # define(`SMART_HOST', uucp-dom:rhein) define(`SMART_HOST', ftn:f4.n5000.z2.fido.de) LOCAL_RULE_3 # Route fidonet.org and fido.sub.org via FTN! R$* < $* z2.fidonet.org > $* $1 < $2 z2.fido.sub.de > $3 R$* < $* fido.sub.org > $* $1 < $2 fido.sub.de > $3
Cw
beginnenden Zeilen werden jetzt noch
diverse Namen für meinen Rechner definiert.
Mit
define(`SMART_HOST', ftn:f4.n5000.z2.fido.de)
define(`SMART_HOST', uucp-dom:rhein)
Zum Ende von spinnaker.mc
habe ich noch ein besonderes Schmankerl
eingebaut:
LOCAL_RULE_3 # Route fidonet.org and fido.sub.org via FTN! R$* < $* z2.fidonet.org > $* $1 < $2 z2.fido.sub.de > $3 R$* < $* fido.sub.org > $* $1 < $2 fido.sub.de > $3
z2.fidonet.org
in z2.fido.sub.de
und
fido.sub.org
in fido.sub.de
umgemappt, so daß alle
Fido-Mails an die diversen Fido-Domains nach fido.sub.de
geschickt werden, was dann per FTN (statt per UUCP o.ä.) verschickt
wird. Dabei sollte man darauf achten, daß zwischen $*
und
$1
mindestens ein TAB stehen sollte (nicht nur Blanks).
Hierzu wird das oben definierte File
/etc/sendmail/mailertable
benötigt. In diesem File werden
"Ausnahmen" vom Default-Routing angegeben, so z.B. auch das Routing
über Fido.
.fido.sub.de ftn:f111.n2450.z2.fido.sub.de .fido.de ftn:f111.n2450.z2.fido.sub.de .ger.sub.de ftn:f64.n100.z21.ger.sub.de .z242.fido.de ftn:f4.n5000.z242.fido.de
/etc/sendmail
einfach folgendes Kommando ein:
makemap hash mailertable.db < mailertable
makemap dbm mailertable < mailertable
spinnaker.mc
ändern, damit dbm
statt hash
von sendmail
erkannt wird. Du trägst dort jetzt in der mailertable-Zeile folgendes
ein:
FEATURE(mailertable,dbm -o /etc/sendmail/mailertable)dnl
Nachdem spinnaker.mc
jetzt fertig editiert ist, können wir daraus
sendmail.cf
erzeugen. Hierzu wechselt man ins Verzeichnis
/usr/src/sendmail/cf/cf
und gibt dort pmake spinnaker.cf
ein. Daraufhin wird /usr/src/sendmail/cf/cf/obj/spinnaker.cf
erstellt, welches man nach nach /etc/sendmail.cf
schiebt und
schon ist die Konfiguration fertig. Falls pmake nicht installiert sein
sollte kann man stattdessen auch folgendes eingeben:
m4 spinnaker.mc > obj/spinnaker.cf
# # /etc/aliases # # compile with # newaliases # nobody: /dev/null support: roland admin: roland operator: roland Roland_Rosenfeld: roland Roland.Rosenfeld: roland postmaster: roland faxadmin: roland usenet: roland sysop: roland rosenfel: roland rosenfeld: roland roro: roland uucp: roland news: roland
newaliases
in eine Datenbank compiliert werden.
Nun muß Sendmail nur noch als Daemon gestartet werden, was mithilfe des Kommandos
/usr/sbin/sendmail -bd -q20m
/etc/rc.d/rc.local
geschieht. Bei vielen Systemen ist
selbiges auch schon in /etc/rc.d/rc.M
angegeben, was
ebenfalls möglich ist. Alternativ kann man sendmail auch per Cron
starten und den inetd auf dem Port lauschen lassen. Hierzu trägt man
in die Crontab des Users root folgendes zusätzlich ein:
*/20 * * * * /usr/sbin/sendmail -q
/etc/inetd.conf
die Zeile
smtp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/sendmail -bs
killall -1 inetd
nicht vergessen, um
inetd.conf
neu einzulesen.
Sendmail schreibt seine Logmessages per syslog. Hierzu empfiehlt es
sich, folgenden Eintrag in /etc/syslog.conf
aufzunehmen:
mail.* /var/log/mail
syslogd
nach dieser Änderung mit
killall -1
behandeln, wie schon in der
Konfiguration von ificio beschrieben.