Sendmail ist ein MTA für MailServer, der immer noch auf vielen Hosts im Internet sein Dienst verrichtet. Sendmail besticht durch seine komplizierte Konfiguration: obskure m4-Makros werden verwendet, um eine vollends unlesbare "/etc/sendmail.cf" zu erstellen. Viele Distributionen und auch die BSDs liefern Sendmail als Standard-MTA, die moderneren MTAs Postfix, exim o.ä. treten als "drop-in replacements" also als kompatibler Ersatz auf. Im "Unix Haters Handbook" wird sendmail auch ein eigenes Kapitel gewidmet: "Sendmail -- the Vietnam of Berkeley Unix"
Homepage: http://www.sendmail.org/
Lizenz: siehe ftp://ftp.sendmail.org/pub/sendmail/LICENSE
Geschichtliches
Sendmail ist die erste freie Implementation des E-Mail-Übertragungsprotokolls SMTP: 2821 (ersetzt 821) herausgegeben als Nachfolger von "delivermail", geschrieben vom selben Autor, Eric Allman.
Sendmail ist einer der ersten MTA ("Mail Transport Agent"), der SMTP verwendet. Seine Entwicklung geht eng einher mit der Errichtung von DNS ("Domain Name Service").
Sendmail wurde zwischen 1982 und 1990 nicht weiterentwickelt. Mit der Etablierung des Internet und beginnendem privaten Zugriff nahm Allman die Entwicklung wieder auf.
Die "Sendmail, Incorporated" wurde 1998 gegründet, sie soll Geld für die Weiterentwicklung einspielen und bietet kommerziellen Support.
Tips & Tricks
- Die "/etc/sendmail.cf" (die zentrale Konfigurationdatei) hat eine gefürchtet kryptische Syntax. Eine erste Vereinfachung bietet die Programmiersprache M4. Mit ihr kann die eigentliche Konfiguration aus einer einfacher gestalteten Makrodatei abgeleitet werden.
Das "BAT-Book" http://www.oreilly.com/catalog/sendmail3/ ist die "definate reference". Ohne geht's nicht wirklich.
http://www.sendmail.com - Die offizielle Sendmail-Homepage ist Anlaufstelle zu weiteren Informationen.
Mini-Howto
Eigentlich gar nicht schwer, wenn man den "M4"-Makro-Trick beherrscht. Zuerst einmal:
"sendmail" installieren, immer die neueste Version verwenden (wegen bekannter Exploits)
- "sendmail" Doku lesen, "m4" Doku lesen . "makemap" Doku lesen. "newaliases" Doku lesen (in GNU/Linux: "man sendmail", "info m4", "man makemap", "man newaliases"; auch: "/usr/share/doc/sendmail/").
Doku zur "sendmail.mc" lesen. Dies ist eine Textdatei mit einem "M4"-Programm, dass mit "M4" zur "/etc/sendmail.cf" übersetzt wird. Eine Online-Version der Doku gibt es auf http://www.sendmail.org/m4/readme.html
In der eigenen Installation suchen, wo die Datei "cf.m4" versteckt ist, z>b mit "rpm -ql sendmail", "dpkg -L sendmail" oder "locate cf.m4". Umgebungsvariable "CF_DIR" ist das Parent-Verzeichnis des Verzeichnis "m4", in dem wiederum die "cf.m4" liegt (z.B. "/usr/share/sendmail/cf/"). In das entsprechende Verzeichnis "${CFDIR}/m4/" wechseln.
- Die Datei "cf.m4" anpassen
m4 -D_CF_DIR_=${CFDIR}/ ${CFDIR}/m4/cf.m4 config.mc > config.cf In "config.cf" liegt jetzt die neue "/etc/sendmail.cf".
- In das Verzeichnis "/etc/mail/" wechseln. Je nach ausgewählten Features die dort befindlichen "Map Files" mit "makemap" neu erstellen.
"/etc/aliases" und "/etc/mail/aliases" anpassen und mit "newaliases" neu erstellen (Hinweis: ich weiss gerade selber nicht, welches die richtige ist .-))
- Berechtigungen auf "/var/spool/mqueue" und "/var/spool/mail" prüfen.
Dann Neustart mit "/etc/init.d/sendmail restart". Eventuell ist "sendmail" auch als Service via inetd eingetragen, in dem Fall läuft es nicht als Dämon im Hintergrund sondern hat einen Eintrag in der "/etc/inetd.conf". Siehe dazu die "sendmail" Doku und die "inetd" Doku (GNU/Linux: "man inetd", "man inetd.conf").
Logfiles beobachten, testen, wahlweise Kaffee oder Tee fertigtrinken.