next up previous
Nächste Seite: Übersetzen des m4-Makros Aufwärts: Erstellen der sendmail.cf Vorherige Seite: Erstellen der sendmail.cf

Die m4-Makro-Datei

Die m4-Makro-Datei (sendmail.mc) macht eigentlich kaum Arbeit, es müssen nur wenige ``Vorgaben'' angepaßt werden. Als Beispiel kann dieses dienen:

SuSE-User Achtung: Yast, bzw. das Skript SuSEconfig überschreibt einem ganz gerne mal die selbst erstellte sendmail.cf, wenn man nicht aufpaßt. Es gibt aber die Variable SENDMAILTYPE in /etc/rc.config, die man auf no setzen muß, um genau dies zu verhindern. Es ist also unbedingt darauf zu achten, daß sie entsprechend gesetzt ist!


dnl  Mit "dnl" beginnt ein Kommentar bis zum Zeilenende und 
dnl  wird nicht ausgewertet.
dnl  Einsetzen in `'-Paare Verhindert die Makro-Expansion.
dnl
dnl  /etc/mail/zaphod.mc
dnl  Michael Lestinsky, 17.1.1999
dnl
define(`LIBDIR',`/usr/share/sendmail.cf')
include(LIBDIR/m4/cf.m4)
VERSIONID(`linux setup for zaphod')dnl
OSTYPE(`debian')dnl
dnl
dnl  Speichere einige Statistiken in dieses File (siehe dazu 
dnl  "man mailstats")
dnl
define(`STATUS_FILE', /etc/mail/sendmail.st)dnl
dnl
dnl  use this user id if we do not use some specific local user
dnl  (e.g. for delivering error messages)
dnl
define(`confDEF_USER_ID', `daemon:daemon')dnl
dnl
dnl  verwende Procmail zum Zustellen der lokalen Mails:
dnl
dnl define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
dnl
dnl  Emails werden in diesem Verzeichnis gespoolt, bevor sie an 
dnl  den nächsten Host weitergegeben werden:
dnl
define(`QUEUE_DIR', /var/spool/mqueue)dnl
dnl
dnl  Fehlermeldungen werden auch an diese Adresse weitergeleitet:
dnl
define(`confCOPY_ERRORS_TO', `Postmaster')dnl
dnl
dnl  Versende Fehlermeldungen nicht im MIME-Format:
dnl
dnl define(`confMIME_FORMAT_ERRORS', `False')dnl
dnl
dnl  Die Standardgroesse fuer UUCP sind 100kB. Das ist zu wenig.
dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
dnl
dnl  Der Standard Zustell-Modus (delivery-mode)
dnl  `i': interactive
dnl  `b': background (asynchonous)
dnl  `q': queue
dnl  `d': delay
dnl  siehe auch `man sendmail` fuer Details
dnl
define(`confDELIVERY_MODE', `b')dnl
dnl
dnl  Wer mit Dial-on-Demand und einem Modem arbeitet, kann hier eine
dnl  Verzögerung einstellen, die Sendmail warten soll, bis die Leitung 
dnl  steht.
dnl
dnl define(`confDIAL_DELAY', `10s')dnl
dnl
dnl  Nach welchem Zeitraum soll Sendmail eine Warnung versenden, dass
dnl  eine Mail noch nicht abgearbeitet werden konnte:
dnl
define(`confTO_QUEUEWARN', `2d')dnl
dnl
dnl  Wann soll eine Mail als unzustellbar zurückgeschickt werden?
dnl
define(`confTO_QUEUERETURN', `7d')dnl
dnl
dnl  Wir werden eingehende Mails ab einer Load von 5 empfangen, aber 
dnl  nur in die Warteschlange stellen. Ab 8 Werden die Mails abgelehnt.
dnl
define(`confQUEUE_LA', `5')dnl
define(`confREFUSE_LA', `8')dnl
dnl
dnl  Oft ist es sinnvoll das SMTP expn und verfy mit "noexpn" und "noverfy"
dnl  abzuschalten. Wer viele User hat kann noch "restrictrunq" und 
dnl  "restrictmailq" aktivieren.
dnl  "authwarnings" warnt mit dem Header "X-Authentication-Warning"
dnl  wenn ein User z.B. "sendmail -bs" verwendet. Pine-User werden dies
dnl  vermutlich deaktivieren wollen.
dnl  "noreceipts" ignoriert alle "Return-Receipt-To:"-Header
dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn')dnl
dnl
dnl  Erstelle das Verzeichnis /var/mqueue/.hoststat und Sendmail schreibt
dnl  Status-Infos über den Empfänger-Rechner hinein. Das beschleunigt
dnl  oft die Mail-Auslieferung auf großen Mailservern.
dnl
dnl define(`confHOST_STATUS_DIRECTORY', `.hoststat')dnl
dnl
dnl  Lasse zu, dass jene User den Sender-Header modifizieren.
dnl  fuer diese Absender wird die X-Authentication-Warning unterdrueckt
dnl
define(`confTRUSTED_USERS', `mdom wwwrun list')dnl
dnl
dnl define(`confCT_FILE', `/etc/mail/sendmail.ct')dnl
dnl FEATURE(`use_ct_file')dnl
dnl
dnl  Definiere den Smarthost entweder hier, oder in /etc/mail/mailertable
dnl  ein Smarthost ist der Empfaenger-Host fuer alle EMails, die nach
dnl  draussen gehen
dnl
define(`SMART_HOST', `smtp:mail.server.your.domain')dnl
dnl define(`SMART_HOST', `uucp-dom:news-ma')dnl
dnl define(`MAIL_HUB', `smtp:host.your.domain')dnl
dnl define(`LOCAL_RELAY', `smtp:host.your.domain')dnl
dnl
dnl  aktiviere diesen Eintrag, wenn Du eine Dial-up-Verbindung zum Internet
dnl  hast, dann werden alle Mails gespoolt, und erst mit "sendmail -q"
dnl  versandt.
dnl
define(`confCON_EXPENSIVE', `True')dnl
define(`SMTP_MAILER_FLAGS',`e')dnl
dnl
dnl  sendmail will give all hostnames to your DNS server and replace the
dnl  names with the FQDN ones. as nearly all email-programs use the full
dnl  hostname and you will probably also just use full hostnames as
dnl  destination addresses, you could disable this "feature".
dnl  this is also used for dial-on-demand connections where we don't want
dnl  to trigger a connection just for a DNS query.
dnl
dnl FEATURE(`nodns')dnl nodns ist seit Sendmail 8.7 deaktiviert.
FEATURE(`nocanonify')dnl
dnl
dnl  if you really have to disable DNS lookups and only want to use /etc/hosts,
dnl  you have to create the file /etc/service.switch with the two lines
dnl  "hosts files" and "aliases files" in it.
dnl  please configure a real DNS server and do not use this mis-feature.
dnl  you might instead also use /etc/mail/mailertable with IP addresses.
dnl
define(`confSERVICE_SWITCH_FILE', `/etc/mail/service.switch')dnl
define(`confHOSTS_FILE', `/etc/hosts')dnl
dnl
dnl  fuege die lokale Domain hinzu, wenn sie im Absender fehlt.
dnl  Beispiel: "From: michael" wird zu "From: michael@zaphod.local.domain"
dnl
FEATURE(`always_add_domain')dnl
FEATURE(`accept_unresolvable_domains')dnl
dnl
dnl  specify the sender email address for all outgoing mail from the local
dnl  machine. most people also want to use "masquerade_envelope" to also
dnl  change the envelope addresses.
dnl  use "allmasquerade" to also change the recipient addresse. don't use
dnl  this feature, if you don't have the full /etc/aliases and the full
dnl  /etc/passwd on your host.
dnl 
MASQUERADE_AS(`mail.server.your.domain')dnl
FEATURE(`masquerade_envelope')dnl
dnl FEATURE(`allmasquerade')dnl
dnl
dnl  Verwende Procmail für die Zustellung von lokalen Mails
dnl
FEATURE(`local_procmail')dnl
dnl
dnl  Die Definitionsdatei fuer das Mail-Routing der ausgehenden Mails:
dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
dnl
dnl  Diese Dateien werden fuer das Umschreiben der Absender- 
dnl  (genericstable, ausgehende Mails) und Empfänger-Adressen 
dnl  (virtusertable eingehende Mails) verwendet.
dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`genericstable', `hash -o /etc/mail/genericstable.db')dnl
dnl
dnl  Drei Möglichkeiten das Relaying zu regeln:
dnl
dnl FEATURE(`relay_based_on_MX')dnl
dnl FEATURE(`relay_entire_domain')dnl
FEATURE(`access_db', `hash -o /etc/mail/access.db')dnl
dnl
dnl  Dies sind die verfügbaren Mailer. Standarteinstellung ist nur SMTP.
dnl  In /etc/mail/mailertable werden die anderen Einträge aktiviert.
dnl
MAILER(`local')dnl
dnl MAILER(`procmail')dnl
MAILER(`smtp')dnl
dnl MAILER(`uucp')dnl
dnl MAILER(`bsmtp')dnl
dnl MAILER(`fido')dnl

Es sei erwähnt, daß ich einen Zugang über UUCP habe, und damit einen festen Hostnamen für meinen Rechner, der im gesamten Internet gültig ist. Ich kann mir also das Masquerading und die Umsetzung der lokalen Accounts, auf die nach außen gültigen, ersparen. Die korrekte Vorgehensweise sollte jedoch aus den Kommentaren in der Anleitung ersichtlich sein. Die entsprechenden Einträge sind einfach an das lokale System anzupassen, und zu (ent-)kommentieren.

(Die Konfiguration von UUCP wird unter anderem in der UUCP-Howto beschrieben, von der es auch eine deutsche Übersetzung gibt. Siehe hierzu http://www.tu-harburg.de/~semb2204/dlhp/HOWTO/index.html).

Wer kein Debian-System hat, der wird die Variable OSTYPE auf einen anderen Wert setzen wollen, z.B. linux, bsd4.4, oder was sonst noch paßt (siehe hierzu auch /usr/(share|include)/sendmail.cf/ostpye). Diese Variable wird verwendet, um einige systemabhängige Standardparameter einzustellen.

Es ist auch mit der Definition der Variablen LIBDIR aufzupassen, ich habe bereits einige Systeme gesehen, bei denen die entsprechenden Dateien unter /usr/include/sendmail.cf standen. Also einfach mal nachschauen, wo sie im eigenen System stehen.


next up previous
Nächste Seite: Übersetzen des m4-Makros Aufwärts: Erstellen der sendmail.cf Vorherige Seite: Erstellen der sendmail.cf
Michael Lestinsky
2000-01-30