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.