GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Webmin

Sendmail-Mailserver

Auf dieser Seite wird eine grundlegende Einführung in E-Mail gegeben, gefolgt von einer Beschreibung des Sendmail-Mailservers und das Webmin-Modul zur Konfiguration.

Das Sendmail-Konfigurationsmodul

Sendmail ist der beliebteste MTA, der heute im Internet verwendet wird, und das seit seiner ersten Entwicklung. Es ist standardmäßig in fast allen Varianten des Unix-Betriebssystems enthalten und funktioniert auf allen gleich. Es verfügt über viele nützliche Funktionen zum Weiterleiten und Verarbeiten von E-Mails, wie z. B. Aliase, Domänen-Routing und vom Benutzer erstellbare Weiterleitungsdateien.

Sendmail hat eine Eins-zu-Eins-Zuordnung zwischen Unix-Benutzern und Mailboxen. Jeder Benutzer hat seine eigene Maildatei, normalerweise im Verzeichnis /var/mail oder /var/spool/mail. Jedes Mal, wenn eine Nachricht an einen Benutzer zugestellt wird, wird sie an die Datei mit demselben Namen wie der Benutzer in diesem Verzeichnis angehängt, z. B. /var/mail/jcameron. Sendmail hat kein Konzept von „Mail-Benutzern“ – wenn Sie eine neue Mailbox erstellen möchten, müssen Sie einen neuen Unix-Benutzer hinzufügen, wie unter Benutzer und Gruppen erklärt.

Sendmail kann E-Mails auf zwei verschiedene Arten annehmen – entweder von einer SMTP-Verbindung oder von einem anderen Programm, das den sendmail-Befehl mit den richtigen Parametern aufruft und ihm die E-Mail als Eingabe zuführt. In beiden Fällen wird die Nachricht entweder an die Mailbox eines lokalen Benutzers zugestellt oder an ein anderes System gesendet. Wenn der Sendmail-Serverprozess nicht läuft, ist es erwartungsgemäß nicht möglich, E-Mails über SMTP an Ihr System zu senden. Außerdem werden keine E-Mails in der Warteschlange zugestellt.

Die primäre Konfigurationsdatei von Sendmail trägt den passenden Namen sendmail.cf und befindet sich im Verzeichnis /etc oder /etc/mail. Darüber hinaus gibt es separate Text- und DBM-Formatdateien für lokale Domänen, E-Mail-Weiterleitungsaliase, Adresszuordnungen und andere später in diesem Kapitel besprochene Funktionen. Fast alle dieser zusätzlichen Dateien sind eigentlich im DBM-Datenbankformat von Unix, aber aus einer entsprechenden Textdatei aufgebaut, die der Systemadministrator (und Webmin) bearbeiten kann. Sendmail liest jedoch nur die DBM-Dateien und überprüft sie für jede empfangene Nachricht erneut, sodass jede Änderung an einer der Datenbankdateien sofort aktiv wird.

Um Sendmail mit Webmin einzurichten, müssen Sie das Sendmail-Konfigurationsmodul besuchen, das Sie unter der Kategorie Server finden. Angenommen, Sie haben den Server installiert, sieht die Hauptseite des Moduls wie im Beispiel unten aus.

Der Hauptbildschirm von Sendmail Mail Server

Wenn das Modul das Sendmail-Serverprogramm oder die primäre Konfigurationsdatei auf Ihrem System nicht finden kann, wird stattdessen eine entsprechende Fehlermeldung angezeigt. Suchen Sie auf Ihrer Linux-Distributions-CD oder -Website nach dem sendmail-Paket und installieren Sie es mit dem Softwarepaketmodul. Wenn andere Pakete verfügbar sind, deren Namen mit sendmail- beginnen (wie sendmail-cf oder sendmail-docs), installieren Sie diese ebenfalls.

Dieser Fehler kann auch in dem unwahrscheinlichen Fall auftreten, dass Sie Sendmail oder seine Konfigurationsdatei an einem anderen Ort installiert haben als dem, den das Modul erwartet. Standardmäßig wird davon ausgegangen, dass Sie die mit Ihrem Betriebssystem gelieferten Pakete verwenden, diese sind jedoch häufig veraltet. Aus diesem Grund haben Sie möglicherweise die neueste Version in einem anderen Verzeichnis kompiliert und installiert. Wenn dies der Fall ist, lesen Sie den Abschnitt Konfigurieren des Sendmail-Konfigurationsmoduls Abschnitt unten finden Sie Anweisungen zum Ändern der Programm- und Konfigurationsdateipfade.

Sendmail hat im Laufe der Jahre viele verschiedene Versionen durchlaufen, und in dieser Zeit hat sich seine primäre Konfigurationsdatei (normalerweise unter /etc/sendmail.cf) geändert. Wenn Sie eine sehr alte Version ausführen oder eine alte Konfigurationsdatei verwenden, zeigt die Hauptseite des Moduls eine Fehlermeldung an, die darauf hinweist, dass das Dateiformat nicht unterstützt wird. Konfigurationen älter als Version 7 lösen diesen Fehler aus, sind aber glücklicherweise auf modernen Unix-Systemen selten zu finden.

Wenn auf der Hauptseite keine Fehlermeldung angezeigt wird, wird die Symboltabelle in der Abbildung oben angezeigt. Jeder kann angeklickt werden, um auf eine der Funktionen von Sendmail zuzugreifen, wie Mail-Aliasing, Domain-Routing oder die Mail-Warteschlange. Der Rest dieses Kapitels erklärt, wie Sie die Seiten und Formulare unter den einzelnen Symbolen verwenden. Neben dem Namen jedes Symbols (z. B. Adresszuordnung ) ist der interne Name der Sendmail-Konfigurationsfunktion in Klammern, die sie steuert, z. B. virtuser. Diese Namen sind vor allem für erfahrene Administratoren nützlich, die wissen möchten, wie sich die Symbole im Modul auf tatsächliche Konfigurationsdateien und Anweisungen beziehen.

Wenn einige der Symbole angeklickt werden, kann eine Meldung wie *In Ihrer Sendmail-Konfiguration ist die Adresszuordnungsfunktion (virtuser) nicht aktiviert* angezeigt werden. Auf vielen Betriebssystemen sind in der primären Sendmail-Konfigurationsdatei standardmäßig nicht alle verfügbaren Funktionen aktiviert. Um die Seiten des ausgewählten Symbols verfügbar zu machen, folgen Sie den Anweisungen im Abschnitt *Hinzufügen von Sendmail-Funktionen mit M4* weiter unten in diesem Kapitel.

Wenn der Sendmail-Serverprozess läuft, eine Schaltfläche mit der Bezeichnung Sendmail stoppen erscheint unten auf der Hauptseite. Wie der Name schon sagt, wird durch Klicken auf diese Schaltfläche der Server heruntergefahren, sodass Ihr System keine SMTP-Verbindungen mehr akzeptiert und die Mail-Warteschlange nicht mehr scannt. Umgekehrt, wenn Sendmail nicht läuft, Sendmail starten Stattdessen wird die Schaltfläche angezeigt, mit der der Serverprozess gestartet werden kann.

Wenn Sie möchten, dass Sendmail die ganze Zeit läuft, verwenden Sie das Bootup and Shutdown-Modul, damit der Serverprozess beim Booten gestartet wird. Die meisten Pakete enthalten ein Aktionsskript, das aktiviert werden kann und möglicherweise sogar standardmäßig aktiviert ist. Andernfalls müssen Sie eine Aktion erstellen, die beim Booten den Befehl /usr/sbin/sendmail -bd -q30m ausführt.

Lokale Domains und Domain-Masquerading bearbeiten

Wenn Sendmail eine E-Mail-Nachricht über eine SMTP-Verbindung empfängt, muss es herausfinden, ob sie lokal zugestellt oder an einen anderen Server weitergeleitet werden soll. Dies geschieht durch Betrachten der Empfängeradresse der Nachricht, insbesondere des Domänenteils nach dem @. Die Domäne wird mit einer Liste lokaler Domänen verglichen, und wenn eine Übereinstimmung gefunden wird, wird die E-Mail an das Postfach des Benutzers zugestellt, dessen Name links vom @ in der An-Adresse steht. Oder wenn kein solcher Benutzer existiert, wird eine Bounce-Nachricht generiert und an den ursprünglichen Absender zurückgesendet.

Wenn die Domäne nicht lokal ist, sucht Sendmail den Mailserver nach der Domäne und versucht, eine Verbindung zu ihr herzustellen, um die Nachricht zu übertragen. Dies passiert normalerweise, wenn ein Client im selben Netzwerk eine Verbindung herstellt, um E-Mails zu versenden. Es tritt jedoch ein Problem auf, wenn Sendmail versucht, sich wieder mit sich selbst zu verbinden, was passieren kann, wenn das DNS sagt, dass es der Mailserver für eine Domäne ist, die nicht auf seiner lokalen Domänenliste steht. In diesem Fall wird eine Bounce-Nachricht an den Absender zurückgesendet, die einen Text enthält, der wie Mail-Loops an mich zurückgesendet wird.

Standardmäßig enthält diese lokale Domänenliste nur den vollständigen Hostnamen Ihres Systems, z. B. server.example.com . Wenn Sie einen Server für den Empfang von E-Mails aus dem Internet für eine Domain (wie example.com ), muss es der Liste hinzugefügt werden. Die Schritte dazu sind:

  1. Klicken Sie auf der Hauptseite des Moduls auf Lokale Domains Symbol. Eine Seite mit einem Textfeld, in dem alle aktuellen lokalen Domänen aufgelistet sind, wird angezeigt.
  2. Fügen Sie der Liste so viele zusätzliche Domänen- oder Hostnamen hinzu, wie Sie möchten, einen pro Zeile. Es ist durchaus möglich, dass ein Server E-Mails für mehrere Domains entgegennimmt, insbesondere wenn er für virtuelles Hosting verwendet werden soll. Wie in der Einleitung erklärt, werden E-Mails erst dann an Ihr System gesendet, wenn für jede Domain ein passender MX-DNS-Eintrag existiert.
  3. Klicken Sie auf Speichern unten auf der Seite, um sie zu aktivieren.

Sendmail akzeptiert immer E-Mail-Nachrichten für die lokale Zustellung, in denen die Empfängeradresse keine Domäne, sondern nur einen Benutzernamen enthält. Diese werden häufig von Programmen gesendet, die auf dem System selbst ausgeführt werden, wie z. B. dem Cron-Daemon oder dem Mail-Befehl.

Die Kehrseite der lokalen Domänenliste ist die Domänenmaskierung. Mit dieser Sendmail-Funktion können Sie die Domäne festlegen, die zum E-Mail-Versand von Ihrem System hinzugefügt wird, wenn keine angegeben ist, z. B. durch den Befehl mail. Es ist auch möglich, dass Sendmail die Absenderadressen-Domains von Nachrichten ändert, die über SMTP empfangen werden, wie z. B. solche, die von Mail-Clients gesendet werden.

Gehen Sie wie folgt vor, um die Domänenmaskierung einzurichten:

  1. Klicken Sie auf der Hauptseite des Moduls auf Domain Masquerading Symbol.
  2. Füllen Sie die Als Domain maskieren aus Feld mit dem Namen der Domäne, die an ausgehende Von-Adressen angehängt werden soll, denen eine fehlt, wie z. B. example.com . Wenn das Feld leer gelassen wird, wird Sendmail keine Domänenänderung vornehmen.
  3. Damit Sendmail die Absenderadressen von Nachrichten aus anderen Domains umschreibt, füllen Sie die Domains to be masqueraded aus Feld. Dies kann nützlich sein, wenn einige der E-Mail-Clients, die Nachrichten über Ihren Server versenden, darauf bestehen, die falsche Domain zu verwenden.
  4. Klicken Sie auf Speichern Schaltfläche, um das Maskieren zu aktivieren.

Auf den meisten E-Mail-Servern müssen Sie sich nicht die Mühe machen, Masquerading zu konfigurieren, da alle E-Mails von Client-Programmen über SMTP gesendet werden. Bei allen E-Mail-Clients kann der Benutzer eine vollständige Absenderadresse angeben, die die richtige Domäne enthalten sollte.

E-Mail-Aliase verwalten

Ein Mail-Alias ​​gibt an, dass E-Mails, die von Ihrem Server für ein bestimmtes Postfach empfangen werden, stattdessen an ein anderes Ziel weitergeleitet werden sollen. Dieses Ziel kann eine andere E-Mail-Adresse, eine Adressdatei, eine lokale Datei oder sogar die Eingabe für ein Programm sein. Sie können nützlich sein, um Pseudo-Mailboxen einzurichten, die tatsächlich E-Mails an eine echte Person senden, wie z. B. [email protected] oder [email protected] . Ein Alias ​​kann denselben Namen wie ein Unix-Benutzer haben, in diesem Fall fängt er alle E-Mails an diesen Benutzer ab und leitet sie stattdessen an ein anderes Ziel weiter.

Auf den meisten Betriebssystemen hat Sendmail mehrere standardmäßig für Systembenutzer definierte Aliase wie bin, nobody und uucp, die alle Mail an root weiterleiten. Außerdem wird es einen Postmaster-Alias ​​geben, den jeder Mailserver haben muss und der Nachrichten an einen Verantwortlichen des Mailservers weiterleiten soll. In der Regel ist dies auch der Root-Benutzer.

Um mit Webmin einen eigenen Mail-Alias ​​zu erstellen, gehen Sie wie folgt vor:

  1. Klicken Sie auf der Hauptseite des Moduls auf die Mail-Aliase Symbol. Sie werden zu einer Seite weitergeleitet, auf der alle vorhandenen Aliase und ihre Ziele aufgelistet sind, mit einem Formular oben zum Hinzufügen eines neuen. Der folgende Screenshot zeigt ein Beispiel.
  2. In der Adresse Feld Create Alias Geben Sie den Benutzer- oder Postfachnamen für diesen Alias ​​ein (den Teil der Adresse links vom @). Wenn Ihr Server mehrere Domänen hostet, leitet der Alias ​​E-Mails weiter, die an den eingegebenen Namen in einer dieser Domänen gesendet werden. Zum Beispiel, wenn Ihr Server E-Mails für foo.com akzeptiert und bar.com , dann ein Alias ​​namens sales leitet E-Mails an [email protected] weiter und [email protected] . Wenn Sie in der Lage sein möchten, denselben Postfachnamen an mehrere Domänen unterschiedlich weiterzuleiten, lesen Sie den Abschnitt unten mit dem Titel *Verwalten virtueller Adresszuordnungen*.
  3. Angenommen, Sie möchten tatsächlich, dass dieser Alias ​​von Sendmail verwendet wird, lassen Sie das Feld Aktiviert? Feld auf Ja gesetzt . Ändere es auf Nein bewirkt, dass der Alias ​​ignoriert wird. Dieses Feld kann beim Bearbeiten eines Alias ​​verwendet werden, um ihn vorübergehend zu deaktivieren, anstatt ihn vollständig zu löschen.
  4. Der Alias ​​für Feld bestimmt, wohin E-Mails an diesen Alias ​​gesendet werden. Die folgenden Optionen sind im Menü verfügbar :
    Es wird überhaupt nichts mit empfangenen E-Mails gemacht. Es macht keinen Sinn, diese Option beim Erstellen eines neuen Alias ​​auszuwählen.
    E-Mail-Adresse
    Die E-Mail wird an den Benutzer oder die Adresse weitergeleitet, die im nebenstehenden Feld eingegeben wurde. Achten Sie darauf, keine Weiterleitungsschleife aufzubauen, indem Sie die E-Mail erneut an die Adresse des Alias ​​zurücksenden! Wenn Sie einen Alias ​​erstellen, der den gleichen Namen wie ein Unix-Benutzer hat und wirklich möchten, dass E-Mails an seine Mailbox sowie einige andere Ziele gesendet werden, geben Sie den Benutzernamen mit vorangestelltem Backslash ein (wie \jcameron ) in dieses Feld. Der Backslash weist Sendmail an, die Alias-Prüfung zu umgehen.
    Adressen in Datei
    Die E-Mail an den Alias ​​wird an alle Adressen in der Textdatei gesendet, deren Dateipfad in das angrenzende Textfeld eingetragen ist. Jede Adresse muss in einer separaten Zeile stehen. Diese Option kann nützlich sein, um eine einfache Mailingliste zu erstellen, und Aliase dieses Typs werden vom Majordomo-Listenmanager verwendet (wird in MajordomoListManager behandelt).
    In Datei schreiben
    Der vollständige Text einschließlich aller Kopfzeilen der vom Alias ​​empfangenen E-Mail wird an die Datei angehängt, deren Pfad in das Textfeld eingegeben wird.
    Eingabe an Programm
    Das Programm, dessen Pfad und Parameter in das Textfeld eingegeben werden, wird ausgeführt und der vollständige Text einschließlich aller Header von E-Mails, die vom Alias ​​empfangen wurden, wird ihm als Eingabe zugeführt. Diese Art von Alias ​​ist am nützlichsten für Programmierer, die ihre eigene benutzerdefinierte Verarbeitung oder Filterung von E-Mail-Nachrichten durchführen möchten. Das Programm wird normalerweise als Unix-Benutzer-Daemon ausgeführt, nicht als root oder der Benutzer mit dem gleichen Namen wie der Alias.
    Autoreply from file
    Wenn eine E-Mail an den Alias ​​gesendet wird, wird der Inhalt der im angrenzenden Textfeld angegebenen Datei an den ursprünglichen Absender zurückgesendet. Weitere Informationen zur Verwendung von Aliasen dieses Typs finden Sie im Abschnitt *Erstellen von Aliassen für automatische Antworten* weiter unten.
    Filterdatei anwenden
    E-Mails, die an den Alias ​​gesendet werden, werden gemäß den Regeln in der in das Textfeld eingegebenen Filterdatei verarbeitet, die je nach Nachrichteninhalt an unterschiedliche Ziele weitergeleitet werden kann. Weitere Einzelheiten finden Sie im Abschnitt *Erstellen von Filteraliasen* später in diesem Kapitel. Ein Alias ​​kann mehrere Ziele haben. Um mehr als einen hinzuzufügen, müssen Sie diesen Alias ​​nach dem Speichern erneut bearbeiten und die Zeile mit ausfüllen unten unter Alias ​​für ausgewählt Tisch.
  5. Klicken Sie auf Speichern um den Alias ​​zur Liste hinzuzufügen und sofort aktiv zu machen.


Die Mail-Aliase-Liste

Wie in Webmin üblich, können Sie einen bestehenden Alias ​​bearbeiten, indem Sie auf seinen Namen in der Liste auf der Seite Mail-Aliase klicken. Dadurch wird ein Bearbeitungsformular geöffnet, das dieselben Felder wie das Erstellungsformular enthält, aber über Speichern verfügt und Löschen Schaltflächen stattdessen unten. Die erste davon aktualisiert den Alias ​​mit allen von Ihnen vorgenommenen Änderungen, während die zweite ihn dauerhaft löscht.

Wenn ein Unix-Benutzer eine Datei namens .forward in seinem Home-Verzeichnis hat, werden E-Mails, die normalerweise an seine Maildatei zugestellt würden, stattdessen an die Adressen gesendet, die in der .forward-Datei aufgeführt sind. In vielerlei Hinsicht entsprechen diese Dateien Aliasnamen, die von einzelnen Benutzern anstatt vom Systemadministrator erstellt werden können. Es ist sogar möglich, dass eine .forward-Datei Einträge enthält, die Sendmail anweisen, E-Mails an eine Liste von Adressen in einer anderen Datei zu senden, sie als Eingabe an ein Programm weiterzuleiten oder sie an eine Datei anzuhängen.

Dieses Modul unterstützt jedoch nicht die Bearbeitung von .forward-Dateien. Usermain ermöglicht es normalen Benutzern jedoch, ihre eigenen Weiterleitungsdateien über eine webbasierte Schnittstelle zu bearbeiten, die fast identisch mit der in diesem Abschnitt beschriebenen ist.

Weiterleitung konfigurieren

In den frühen Tagen des Internets konnten Mailserver E-Mails sicher an lokale Domänen zustellen und alle anderen E-Mails unabhängig von ihrer Quelle an einen anderen MTA weiterleiten. Heute ist es eine Einladung für Spammer, Ihr System als Relais zu verwenden, wenn Sie Ihrem Server erlauben, alle empfangenen E-Mails weiterzuleiten. Ein gut konfigurierter Server sollte nur E-Mails für nicht-lokale Domänen von vertrauenswürdigen Client-Hosts akzeptieren, z. B. denen im Firmennetzwerk oder Heim-LAN. An lokale Domänen gesendete E-Mails sind sicher und können von überall akzeptiert werden.

Wenn Sendmail auf Ihrem System ein offenes Relay ist (eines, das nicht-lokale E-Mails von überall akzeptiert), können Leute, die Millionen von Spam-E-Mail-Nachrichten versenden, es verwenden, um ihre Spuren zu verwischen. Selbst wenn Sie einen kleinen Mailserver für ein winziges Unternehmen betreiben, von dem Sie glauben, dass kein Spammer jemals davon erfahren wird, ist es immer noch eine sehr schlechte Idee, Ihr System für die Weiterleitung offen zu lassen.

Aus diesem Grund sind die Sendmail-Pakete, die mit modernen Linux-Distributionen geliefert werden, standardmäßig so konfiguriert, dass der Server nicht-lokale E-Mails von überall außer demselben System akzeptiert. Wenn Sie einen Mailserver für ein Unternehmen oder für Ihr Heim-LAN einrichten, müssen Sie auch anderen Hosts erlauben, E-Mails weiterzuleiten:

  1. Klicken Sie auf der Hauptseite des Moduls auf Relay Domains Symbol, um ein Formular zur Eingabe von Relay-Netzwerken und Domänen aufzurufen.
  2. In den Domänen, zu denen weitergeleitet wird ist erlaubt, fügen Sie die Adresse des Netzwerks hinzu, von dem Sie Clients das Weiterleiten erlauben möchten. Sie sollte ohne nachgestellte Nullen eingegeben werden, zum Beispiel 192.168.1 . Es können mehr als ein Netzwerk sowie bestimmte IP-Adressen eingegeben werden. Sie können auch Domänennamen wie foo.com eingeben zu denen Sendmail die Weiterleitung zulässt. Jede empfangene E-Mail-Nachricht (unabhängig von ihrer Quelle), die für eine bestimmte Domäne bestimmt ist, wird an den entsprechenden Server übermittelt. Dies kann nützlich sein, wenn Ihr System ein Mail-Gateway für andere Domains ist, die vom Rest des Internets nicht direkt erreicht werden können, wie im Abschnitt *Domain-Routing konfigurieren* erläutert.
  3. Klicken Sie auf Speichern Schaltfläche, um die neue Relay-Domänenliste zu aktivieren.

Ein Nebeneffekt der Weiterleitungsbeschränkungen von Sendmail besteht darin, dass es keine Möglichkeit gibt, Ihr System als Server für ausgehende E-Mails zu verwenden, wenn Sie sich von einem nicht vertrauenswürdigen Netzwerk aus verbinden – genau das ist der springende Punkt. Manchmal kann es jedoch lästig sein, zum Beispiel, wenn Sie sich bei vielen verschiedenen ISPs einwählen und Ihren E-Mail-Client nicht neu konfigurieren möchten, um für jeden einen anderen Postausgangsserver zu verwenden. In einer idealen Welt wäre es möglich, Ihren eigenen Mailserver für ausgehende E-Mails zu verwenden, unabhängig davon, von wo aus Sie sich verbinden, aber dies ist normalerweise unmöglich, ohne die Relay-Beschränkungen vollständig auszuschalten.

Die beste Lösung für dieses Problem ist die SMTP-Authentifizierung, bei der sich Clients bei Sendmail anmelden, bevor sie E-Mails weiterleiten. Leider hat Webmin noch keine einfache Möglichkeit, dies einzurichten. Eine andere Lösung besteht darin, Clients zu vertrauen, die eine POP3-Verbindung vor SMTP herstellen, was die meisten E-Mail-Client-Programme tun. Dies erfordert jedoch eine Zusammenarbeit zwischen dem POP3-Server und Sendmail, bei denen es sich normalerweise um nicht verwandte Programme handelt. Zum Zeitpunkt des Schreibens unterstützt Webmin seine Konfiguration ebenfalls nicht.

Verwalten virtueller Adresszuordnungen

Adresszuordnungen ähneln Aliassen, außer dass sie nur für E-Mails gelten, die an einen bestimmten Benutzer und eine bestimmte Domäne gesendet werden, und nicht an einen Benutzer in einer beliebigen Domäne, wie dies bei Aliasen der Fall ist. Ein weiterer Unterschied besteht darin, dass Adresszuordnungen E-Mails nur an eine einzelne Adresse weiterleiten können und nicht an ein Programm, eine Datei oder eine Liste von Adressen. Diese Einschränkung kann jedoch überwunden werden, indem sowohl Mappings als auch Aliase kombiniert werden.

Sie können Adresszuordnungen verwenden, um E-Mails an [email protected] zu senden und [email protected] an unterschiedliche endgültige Ziele gesendet, obwohl beide Domains von Ihrem Server gehostet werden. Dies ist besonders nützlich, wenn Sie eine große Anzahl von E-Mail-Domains für verschiedene Kunden verwalten, von denen viele ähnliche Adressen haben möchten (z. B. Vertrieb ) in ihren Domänen.

Adresszuordnungen können auch verwendet werden, um alle E-Mails an eine bestimmte Domäne an dieselben Benutzer in einer anderen Domäne umzuleiten, sodass beispielsweise E-Mails an [email protected] gesendet werden und [email protected] wird an [email protected] gesendet und [email protected] bzw. Besser noch, Sie können alle E-Mails an eine beliebige Adresse in einer Domain an eine einzige andere Adresse senden lassen, was für den POP3-Mail-Client Fetchmail Mail Retrieval nützlich ist. Um eine neue Adresszuordnung zu erstellen, gehen Sie wie folgt vor:

  1. Klicken Sie auf der Hauptseite des Moduls auf Adresszuordnungen Symbol. Eine Seite mit allen vorhandenen Zuordnungen wird angezeigt, mit einem Formular oben mit der Bezeichnung Zuordnung erstellen um ein neues hinzuzufügen.
  2. Wenn Sie eine Zuordnung für E-Mails zu nur einer einzigen Adresse erstellen möchten, wählen Sie Adresse in der Mail für aus und geben Sie die Adresse in das angrenzende Textfeld ein. Im Gegensatz zu einem Alias ​​muss er vollständig wie [email protected] eingegeben werden . Wenn Sie eine Zuordnung für alle E-Mails zu einer Domäne erstellen, wählen Sie die Domäne aus Option und geben Sie den vollständigen Domänen- oder Hostnamen in das Textfeld daneben ein, z. B. example.com . In jedem Fall muss die Domäne in der Adresse oder die eingegebene Domäne in Sendmails Liste der lokalen Domänen erscheinen, wie in Lokale Domänen bearbeiten erklärt Abschnitt weiter vorne in diesem Kapitel.
  3. Wenn das Ziel der Zuordnung eine einzelne Adresse ist, in Senden an Feld wählen Sie Adresse und füllen Sie das Textfeld daneben entweder mit einer vollständigen Adresse (wie [email protected] ) oder ein Postfachname (wie einfach jcameron ). Wenn Domain wurde für Mail für ausgewählt Feld können Sie die Domain auswählen Option auch für dieses Feld. Wenn dies der Fall ist, müssen Sie einen Domänennamen eingeben (z. B. foo.com ) in das angrenzende Textfeld, an das alle an die ursprüngliche Domain gesendeten E-Mails weitergeleitet werden. Der letzte Rückgabefehler Option unter Senden an kann ausgewählt werden, wenn stattdessen eine bestimmte Fehlermeldung an die Absender zurückgesendet werden soll. Wenn ausgewählt, muss ein Fehlertyp aus dem Menü daneben ausgewählt und eine detailliertere Fehlermeldung in das Textfeld eingegeben werden. Diese Option kann nützlich sein, um Bounce-Nachrichten zurückzusenden, die erklären, warum eine bestimmte Adresse oder eine gesamte Domain nicht mehr erreichbar ist.
  4. Klicken Sie auf Erstellen Schaltfläche, um die Adresszuordnung zur Liste der unter dem Formular angezeigten hinzuzufügen. Es wird sofort aktiviert.

Wie bei Aliassen können Sie vorhandene Zuordnungen bearbeiten oder löschen, indem Sie auf ihre Adressen in der Liste klicken. Dadurch wird ein Formular angezeigt, das mit dem zum Erstellen einer Zuordnung identisch ist, jedoch mit Speichern und Löschen Knöpfe unten.

Wenn sowohl für eine Domäne als auch für eine Adresse in dieser Domäne eine Zuordnung vorhanden ist, verwendet Sendmail die zweite für E-Mails an diese bestimmte Adresse und die erste für E-Mails an ein beliebiges anderes Postfach in der Domäne. Tatsächlich haben spezifischere Adresszuordnungen Vorrang vor den allgemeineren. Ihre Reihenfolge in der Liste auf der Seite Adresszuordnungen spielt überhaupt keine Rolle.

Wenn Sie eine Zuordnung erstellen möchten, die E-Mails an ein Programm, eine Datei oder eine Adressliste weiterleitet, müssen Sie auch einen Alias ​​erstellen. Die Adresszuordnung sendet E-Mails an den Alias, und der Alias ​​leitet sie dann an das tatsächliche Ziel weiter. Normalerweise sollte der Alias ​​einen Namen benennen, der sich auf die Adresszuordnung bezieht, z. B. jcameron-example-com zum Mapping für die virtuelle Adresse [email protected] .

Auf einem System mit vielen Domains und Benutzern ist es sehr wahrscheinlich, dass zwei Personen denselben Mailbox-Namen in verschiedenen Domains haben möchten, z. B. [email protected] und [email protected] . Da Sendmail letztendlich nur E-Mails an die Maildateien von Unix-Benutzern zustellt und zwei Unix-Benutzer nicht denselben Namen haben können, kann dies ein Problem darstellen. Die übliche Lösung besteht darin, Benutzer mit dem Namen bob-foo zu erstellen und Bobbar , und richten Sie entsprechende Adresszuordnungen ein, um E-Mails an sie weiterzuleiten. Der einzige Nachteil ist, dass sich die Benutzer beim POP3-Server als bob-foo anmelden müssen oder Bobbar statt nur Bob .

Domain-Routing konfigurieren

Die Domain-Routing-Funktion von Sendmail kann verwendet werden, um alle E-Mails an eine bestimmte Domain an einen anderen Server weiterzuleiten. Es ist am nützlichsten, wenn das DNS so eingerichtet ist, dass E-Mails für einige Domänen an Ihr System gesendet werden, die dann an einen anderen MTA weitergeleitet werden sollen, der vom Rest des Internets nicht erreichbar ist. Routing kann auch verwendet werden, um die normale Methode zu überschreiben, mit der Sendmail herausfindet, an welchen Host E-Mails gesendet werden sollen, was in Netzwerken praktisch sein kann, in denen die Konnektivität unvollständig ist oder einige DNS-Informationen nicht für alle Hosts verfügbar sind.

Führen Sie die folgenden Schritte aus, um eine neue Domain-Routing-Regel hinzuzufügen:

  1. Klicken Sie auf der Hauptseite des Moduls auf das Domain Routing Symbol. Es wird eine Seite mit vorhandenen Routings (falls vorhanden) angezeigt, über der sich ein Formular zum Hinzufügen eines neuen befindet.
  2. Wählen Sie den Host aus, damit E-Mails nur an eine bestimmte Domain oder einen bestimmten Host weitergeleitet werden Option in der Mail für Feld und geben Sie die Domäne oder den Hostnamen in das angrenzende Feld ein. Wenn Sie alternativ möchten, dass E-Mails für alle Hosts innerhalb einer Domäne weitergeleitet werden, wählen Sie Domäne aus stattdessen und geben Sie den Domänennamen in das Feld ein. Ein solches Routing für die Domain example.com bewirkt nicht, dass E-Mails an eine Adresse in der Domain gesendet werden (wie [email protected] ), aber nur E-Mails an Adressen auf Hosts unter der Domain (wie [email protected]). ). Normalerweise ist dies nicht das, was Sie wollen. Alle Domains oder Hostnamen, die Sie eingeben, müssen auf der Liste stehen, für die Sendmail die Weiterleitung zulässt, wie in Weiterleitung konfigurieren erläutert Abschnitt weiter vorne in diesem Kapitel.
  3. Aus der Lieferung Wählen Sie im Menü SMTP aus . Dieses Feld teilt Sendmail mit, welches Protokoll beim Weiterleiten von E-Mails für die Domäne verwendet werden soll. Die meisten anderen Optionen sind nutzlos, da sie sich auf UUCP beziehen, das kaum noch verwendet wird.
  4. Im Feld Senden an Geben Sie im Feld Hostname des Systems ein, an das E-Mails weitergeleitet werden sollen. Die Option MX für SMTP-Zustellung ignorieren sollte ebenfalls aktiviert sein, damit Sendmail immer direkt an diesen Host liefert, anstatt eine weitere DNS-Suche zu versuchen, um das richtige Ziel zu ermitteln.
  5. Klicken Sie auf Erstellen Schaltfläche zum Hinzufügen und Aktivieren des neuen Domain-Routings. Sie sollten es testen, um sicherzustellen, dass es wirklich funktioniert, da kleine Fehler (wie die Auswahl von Domain statt Host ) kann verhindern, dass eine Route funktioniert.

Wie auf anderen ähnlichen Seiten im Modul kann eine bestehende Routing-Regel bearbeitet oder gelöscht werden, indem Sie auf der Seite Domain-Routing in der Liste auf ihren Domain-Namen klicken. Es gibt jedoch keine Möglichkeit, eine Regel vorübergehend zu deaktivieren, wie dies bei Aliasnamen der Fall ist.

Sendmail kann auch so konfiguriert werden, dass alle nicht lokalen E-Mails an einen bestimmten Server weitergeleitet werden, anstatt nur E-Mails an bestimmte Domänen zu senden. Dies ist nützlich, wenn Ihr Unternehmen oder ISP über einen zentralen Mailserver verfügt, an den Sie E-Mails übergeben möchten, anstatt Ihr System mit dem tatsächlichen Zielserver verbinden zu lassen. Im nächsten Abschnitt wird erklärt, wie Sie dies einrichten.

Globale Sendmail-Optionen bearbeiten

Die globalen Optionen steuern Dinge wie die maximale Nachrichtengröße, die Anzahl der Tage, um E-Mails erneut zu versuchen, die durchschnittlichen Ladegrenzen und den Postausgangsserver. Die folgenden Schritte erklären, wie Sie einige der nützlichsten bearbeiten:

  1. Klicken Sie auf der Hauptseite des Moduls auf die Sendmail-Optionen Symbol. Ein Formular zum Bearbeiten globaler Optionen (siehe unten) wird angezeigt.
  2. Wenn die Option Ausgehende E-Mails über den Host senden auf *Direkt zustellen* eingestellt ist, sucht Sendmail den richtigen Mailserver nach nicht lokalen Nachrichten und stellt eine Verbindung zu ihm her, um E-Mails zuzustellen. Wenn Sie jedoch die zweite Option auswählen und einen Hostnamen in das Textfeld eingeben, werden alle Nachrichten außer denen für lokale Benutzer stattdessen an diesen Host gesendet. Normalerweise ist dies ein zentraler Mailserver bei Ihrem ISP oder im Netzwerk Ihres Unternehmens. Wenn eine Domain-Routing-Regel für eine Adresse existiert, hat sie Vorrang vor allen Servereinstellungen, die in diesem Feld verwendet werden.
  3. Der Liefermodus steuert, wie Sendmail eingehende Nachrichten verarbeitet. Die verfügbaren Optionen sind :Hintergrund oder *Standard *In diesem Modus werden E-Mails sofort von Clients akzeptiert und dann durch einen separaten Hintergrundprozess an das Ziel zugestellt. Dies ist normalerweise das, was Sie wollen. *Nur Warteschlange* oder *Verzögert *Wenn einer dieser Modi gewählt wird, fügt Sendmail eingehende Nachrichten einfach seiner Mail-Warteschlange hinzu. Nur wenn die Warteschlange explizit geleert wird, werden sie an ihre Ziele gesendet. Dies kann nützlich sein, wenn Ihr System nicht immer mit dem Internet verbunden ist oder wenn Sie explizit steuern möchten, wann der Server Nachrichten versendet. Wenn eine Nachricht in einem dieser Modi empfangen wird, führt Sendmail keine Validierung der Quell- oder Zieladresse durch, was andernfalls zu Problemen führen würde, wenn Ihr System vom Netzwerk getrennt wird. *Interaktiv *Dieser Modus ähnelt Hintergrund, außer dass E-Mails von demselben Prozess zugestellt werden, der sie vom Client akzeptiert. Das bedeutet, dass Clients warten müssen, bis Sendmail ihre Nachrichten an den nächsten oder Zielserver übertragen hat, was einige Zeit dauern kann. Es verringert jedoch die Anzahl der Prozesse, die Sendmail starten muss.
  4. Die SMTP-Portoptionen Das Feld kann verwendet werden, um die TCP-Ports einzustellen, die Sendmail auf SMTP-Verbindungen abhört. Der tatsächliche Wert, der eingegeben werden kann, kann ziemlich komplex sein, aber wenn Sie möchten, dass Ihr System Verbindungen von überall auf dem Standard-SMTP-Port akzeptiert, sollten Sie nur Name=MTA eingeben. Auf einigen Betriebssystemen ist dies nicht die Standardeinstellung, und Sendmail akzeptiert nur Verbindungen von localhost.
  5. Der maximale Lastdurchschnitt beim Senden kann verwendet werden, um einen Lastdurchschnitt festzulegen, über dem Sendmail keine Nachrichten versendet. Der Lastdurchschnitt ist eine grobe Schätzung der Anzahl der Prozesse, die zu einem bestimmten Zeitpunkt auf Ihrem System laufen, wie in Kapitel 11 erklärt. Diese und die nächste Option sind nützlich, um die Menge an CPU-Zeit zu begrenzen, die Sendmail auf Ihrem System verbrauchen kann , obwohl letzteres nützlicher ist. Wenn Standard ausgewählt ist, verarbeitet der Server weiterhin die Mail-Warteschlange und sendet Nachrichten unabhängig von der durchschnittlichen Auslastung.
  6. Um einen Lastdurchschnitt festzulegen, oberhalb dessen Sendmail keine neuen Nachrichten mehr akzeptiert, geben Sie einen Wert für Max. Lastdurchschnitt beim Empfangen ein Feld. Wenn dieser Wert erreicht ist, schließt der Server den SMTP-Port, bis die Last wieder darunter fällt. In der Regel sollte alles, was Sie eingeben, unter dem Grenzwert liegen, der für Max. durchschnittliche Auslastung beim Senden festgelegt wurde Feld, damit die Mail-Queue auch bei hoher Last noch bearbeitet wird. Wenn Standard ausgewählt ist, akzeptiert Sendmail neue Verbindungen unabhängig von der durchschnittlichen Auslastung.
  7. Die Zeit vor dem Aufgeben Das Feld gibt an, wie lange Sendmail versucht, eine E-Mail an einen nicht erreichbaren Remote-Server zu senden, bevor eine Bounce-Nachricht an den Absender zurückgesendet wird. Der eingegebene Wert muss eine Zahl sein, gefolgt von d für Tage oder h für Stunden. Es sollte nur geändert werden, wenn Ihr System wahrscheinlich länger als die Standardeinstellung von 5 Tagen vom Internet getrennt sein wird und Sie nicht möchten, dass Nachrichten in der Warteschlange zurückspringen.
  8. Die ähnliche Zeit vor dem Senden einer Warnung Das Feld gibt die Zeit an, die Sendmail eine Nachricht in der Warteschlange hält, bevor eine Warnung an den ursprünglichen Absender gesendet wird. Wenn Ihr System ein sekundärer Mailserver für eine Domäne ist oder häufig vom Netzwerk getrennt wird, sollte es auf die gleiche Zeit wie das vorherige Feld erhöht werden.
  9. Um die Adresse zu ändern, an die Sendmail schwerwiegende oder doppelt zurückgesendete Nachrichten sendet, geben Sie eine neue Adresse in das Feld *Fehlermeldungen senden an* ein. Beim Postmaster ausgewählt ist, werden sie stattdessen an das Postmaster-Postfach gesendet, das normalerweise ein Alias ​​für root ist.
  10. Um den Speicherplatz zu begrenzen, den Sendmail für Nachrichten in der Warteschlange verwendet, füllen Sie das Feld Min. freier Speicherplatz aus Feld. If the number of free blocks drops below this level, new incoming messages will no longer be accepted. The exact size of a block depends on the type of filesystem in use, but they are typically
  11. kB or 512 bytes in size.
  12. To stop large messages being sent via your mail server, fill in the Max message size Feld. Any email larger than the number of bytes entered will be rejected when it is received. If you have a slow network connection and un-trusted client users, this option can be useful to save on bandwidth.
  13. Finally, click Save and Apply to save the new global options. Webmin will automatically re-start Sendmail for you to activate them.


The Sendmail options page

Viewing the mail queue

When Sendmail receives a message, it is placed into the mail queue. If it can be send to its destination immediately, then it will be removed from the queue almost at once - however, if some temporary error occurs when ending then it will remain queued for later processing. The Sendmail server process makes periodic checks of messages in the queue, re-trying each one at longer and longer intervals. Finally after a message has been in the queue for too long (usually 5 days), it will be removed and a bounce email sent back to the original sender.

Most messages that are in the queue for a long time are there because the destination mail server is down or unreachable. Another common cause is a temporary error reported by the remote MTA, such as a lack of disk space. Webmin allows you to view messages in the queue and even delete them by following these steps :

  1. On the module's main page, click on the Mail Queue icon to go to a page listing the details of queued messages. The number of emails in the queue is displayed below the icon, so that you can see how long it is at a glance.
  2. On the mail queue page the ID, sender, destination, subject and size of all queued messages are displayed in a table. In the final column is the current status, which indicates what Sendmail is trying to do with the message at the moment. Sending will appear when Sendmail is trying to connect to the remote server, and Deferred will be shown along with a reason when a connection has been tried and failed. If the queue contains more than 20 messages, only the first 20 will be displayed. To page through the rest, use the left and right arrow buttons that appear above the list.
  3. To view the actual contents of an email, click on its ID in the queue listing. All headers, the text body and any attachments will be displayed. To view an attachment, just click on its icon. To remove just this message from the queue, hit the Delete Schaltfläche unten auf der Seite. If the email is locked because it is currently being sent, Webmin will display an error message along with a button labelled Force deletion anyway that you can click to override the lock. This may cause the message to be only partially sent though, and so is not recommended.
  4. To remove multiple messages from the queue, first select them using checkboxes next to their IDs and the Select all and Invert selection links on the queue list page. Then click the Delete selected messages button to get rid of those that you have chosen. To override any locks on the selected emails, check the Even if locked box first. After you hit the Delete button, a page listing the ID and deletion result of each chosen message will be displayed. Deletion can fail if the message is no longer in the queue, or if it is currently locked.

Even though Sendmail will re-try messages in the queue automatically, you can force it to attempt delivery of all queued messages immediately using Webmin. This can be useful if you have a dial-up Internet connection and have queued up several emails while disconnected. The steps to flush the queue are:

  1. On the module's main page, click on the Mail Queue icon to bring a list of queued messages.
  2. As long as the queue is not empty, a button labelled *Flush Mail Queue* will be visible at the bottom of the page. Click it begin immediate processing of all waiting messages.
  3. A page showing the output from Sendmail as it attempts to deliver queued email will be displayed. If you have a large queue containing messages for down remote servers, it may take a long time to completely appear.

Lesen von Benutzer-E-Mails

As the introduction explains, Sendmail stores messages received by users in files in the /var/mail or /var/spool/mail directory. These are read and emptied by the POP3 server, command-line mail clients like pine or elm, or web-based mail clients like Usermin. However, this Webmin module can also act as a simple mail client, allowing you the system administrator to read any user's email.

This feature is useful for deleting large messages is user mailboxes that would otherwise take a long time to download over a dialup POP3 connection. It also allows you to read email for system users such as root without needing to telnet in or run a separate mail client. More controversially, on a multi-user system you can even invade people's privacy by reading their personal email - assuming they have not downloaded and deleted it via POP3 yet.

The steps to check the contents of a user's mailbox are:

  1. On the module's main page, click on the User Mailboxes Symbol. A page listing all of the users on your system and the sizes of their mailboxes will be displayed, unless you have more than 200 users. In that case, a small form for entering a username will appear instead.
  2. Click on the name of a user to bring up a list of messages in his mailbox, an example of which is shown in Figure 37-4. By default, the most recent messages are shown first, even though they are actually at the end of the actual mail file. If the mailbox contains more than 20 emails, only the first 20 will be displayed. To page though the rest, use the left and right arrow buttons above the list.
  3. To view an actual message, click on the sender's name in the From Säule. A page showing the important headers, body text and attachments will appear. Click on an attachment icon to view it, assuming that the data type is supported by your browser or some external program. To remove just this email from the user's mailbox, click the Delete Schaltfläche unten auf der Seite. This can take quite some time if the mailbox is extremely large (over 10 MB) or contains lots of messages, as Webmin needs to re-write the entire mail file.
  4. To delete multiple messages, first select them using the checkboxes and Select all and Invert selection links on the mail list page. Then click the Delete button above or below the list - once again, this can take a while for large mailboxes.
  5. To search the user's mailbox for messages matching some criteria, use the Find messages where form below the list. The following types of search can be selected from the menu :From:matches , Subject:matches , To:matches or Cc:matches Finds messages in which the From, Subject, To or Cc field contains the text entered into the adjacent text box. The comparison is case-insensitive, but regular expression characters cannot be used. Date:matches Finds messages in which the sending date header contains the entered text. This header will not be converted to local format, so whatever you enter must match the date format used by the sender. Body matches Finds messages whose body contains the entered text. The body includes all attachments in their un-encoded form, not just the text that is shown when you read an email. *Size is greater than* Finds messages whose total size is greater than the number of bytes entered into the adjacent field. For each of the above search types, an inverse type is also available, such as From:doesn't match or *Size is less than*. After choosing your search type and entering text to match, hit the Search Taste. A page listing all matching messages will be displayed, from which you can view the contents of emails or select some or all to delete, just like in the normal mail list.


The contents of a user's mailbox

The mail reading section of the module actually allows you to compose new messages and reply to or forward existing ones. In fact, it can be used as a full-featured email client, although it is not the best program for the job. The default From address for sent messages is determined from the mailbox user's name and the system hostname, but this can be changed on the module access control page on a per-Webmin user basis. It is even possible to create Webmin users who can use this module to read only their own mailbox and send email from only their address. However, you should really use a program like Usermin if you want to give the same mail-reading web interface to a large number of users on your system.

By default, the module assumes that that mail for each user will be stored in a file with the user's name in the /var/mail or /var/spool/mail directory. It is possible to configure Sendmail to use a different file path instead though, such as the mbox file in each user's home directory. If this is the case on your system, you will need to re-configure the module, as explained in the section Sendmail Configuration Modul. Otherwise all the mailbox will show up empty, because Webmin is looking in the wrong place for them.

Adding Sendmail features with M4

The primary Sendmail configuration file sendmail.cf is extremely complex, and almost impossible to edit manually. Fortunately, it is usually built from a series of M4 macro files that are much simpler and can be modified using this module or by manual editing. M4, for those who have not heard of it before, is a program that parses text files and expands macros in them. These macros can include other text files, define variables and functions or exclude text based on certain conditions. M4 is very similar to the pre-processor used by the C programming language which handles #include and #define statements. Fortunately, this module hides most of the complex details from you.

Often, the default Sendmail configuration that comes with your operating system will not have some features enabled, such as address mapping or domain routing. Webmin can detect this, and will display an error message if you try to use a module page for a Sendmail feature that is not enabled in the primary configuration file. To turn on a missing feature, an entry must be added to the primary M4 configuration file, from which sendmail.cf is re-built. Then Sendmail will be able to use it, and this module will be able to configure it.

Before you can manage your Sendmail M4 configuration, this module must know where to find the M4 files. To check if it has the correct paths and to set them if not, follow these steps:

  1. On the module's main page, click on the Sendmail M4 Configuration Symbol.
  2. If an error message like *The Sendmail M4 configuration file /etc/sendmail.mc was not found* or The locations of the Sendmail M4 base directory and M4 config* files have not been set* is displayed, then module cannot find the M4 files. However, if a table of entries from the file is displayed instead then everything is configured OK and you can skip the rest of these steps.
  3. If you are running Linux, check your distribution CD or website to make sure that all the packages whose names start with sendmail are installed. Sometimes the M4 files are in a separate package named something like sendmail-cf. If you do find and install such as package, go back to step 1 and check again to see if the module has found the configuration files.
  4. If you are using the Sendmail package that came with your version of Unix and cannot find any M4 files on your system, then this feature of the module cannot be used. This is unfortunately the case on some operating systems.

Once the Sendmail M4 Configuration page displays the contents of your primary M4 file, you can use it to add new features such as address mapping or domain routing. The page can in fact be used to modify any of the M4 macros in the file, but unless you are any experienced Sendmail administrator it is best to stick to these instructions for adding features:

  1. From the menu next to the Add new entry of type button at the bottom of the page, select Feature and then hit the button to go to the feature creation form.
  2. Select the one that you want to add from the Feature Speisekarte. The most commonly used features have names next to them in brackets that correspond to their icons on the module's main page.
  3. In the Parameters field, enter hash -o followed by the path that should be used for the feature's text and DBM files. For example, if adding a virtusertable feature you should enter hash -o /etc/mail/virtusertable (assuming your system has an /etc/mail directory).
  4. Login to your system as root via SSH, telnet or at the console and create the empty text file with a command like touch /etc/mail/virtusertable. Naturally, this is not necessary if it already exists.
  5. Klicken Sie auf Erstellen button to update the M4 file and be returned to the previous page.
  6. At the very bottom of the M4 file contents list, click the *Rebuild Sendmail Configuration* button. A confirmation page showing the exact changes that will be made to your sendmail.cf file will be displayed - typically they will be limited to directives for the new feature. If the confirmation form indicates that a huge number of lines are going to be changed, it is likely that the M4 file being edited was not originally used to built your current sendmail.cf file, and so should not be used in future.
  7. To go ahead and use the newly rebuilt Sendmail configuration, click the Yes, replace it now Taste. Your sendmail.cf file will be updated and the server process re-started to immediately activate it.
  8. Go back to the module's main page, and click on the icon for the feature that you have just enabled. You will not be able to add and edit address mappings or whatever it was that you added support for.

As you can see from looking at the existing M4 file entries, editing or adding to it can still be quite complex. For this reason, the book does not cover all of the possible features or other macro types that you can add. However, for most people the defaults will work just fine - at most, all you should need to do is add a feature or two as explained above. If you want to learn more about editing the M4 configuration, you should buy a book dedicated to Sendmail administration.

One problem with using the M4 page to re-build your Sendmail configuration is that any changes that have been made directly to sendmail.cf will be overwritten. The module's Sendmail Options page unfortunately does precisely this, so if you follow the instructions above to add a new feature any changes made on that page will be lost! The only real solution is to edit the entries in the M4 file that correspond to those on the Sendmail Options page - for example, the Send outgoing mail via host field is set by the SMART_HOST define.

Creating autoreply aliases

The Sendmail Configuration module lets you easily create an alias that triggers an automatic reply to anyone who sends email to it. When you do this, Webmin creates a simple script that is run from the alias and receives the contents of email sent to it as input, just like a command specified using the Feed to program alias type.

To set up an autoreply alias, follow these steps:

  1. On the module's main page, click on the Mail Aliases Symbol.
  2. In the Create Alias form, enter a name for the alias and select Autoreply from file from the type menu. The name can be that of an existing Unix user if you want to set up an automatic reply to any message send to him, for example if he is on holidays.
  3. In the field next to the type menu, enter the path to a file that will contain the autoreply message, such as /home/someuser/autoreply.txt . The file does not have to exist yet.
  4. Klicken Sie auf Erstellen button to add the alias, and then click on its name in the list to edit again.
  5. Follow the Edit link next to the autoreply filename field. This will bring up a page containing a large text box for entering the contents of the reply message.
  6. After entering the text that you want sent back to any sender, click Save at the bottom of the page. The autoreply alias is now fully active.

The reply text can contain several special macros that start with $, such as $SUBJECT, $TO, $FROM, $DATE and $BODY. When the reply is sent, these will be replaced with the original message's subject, destination address, sender address, sending date or body respectively. Be careful using the $BODY macro though, as it will be replaced with the entire un-encoded contents of the email being replied to.

You can also add to or override the headers used in the reply message by starting the autoreply text with one or more lines in standard SMTP header format, followed by a blank line. For example, to set the subject of the automatic reply you could enter _Subject:This is an automatic reply_ at the top of the text box, with an empty line after it.

One problem with Webmin's autoreply script is its inability to reliably determine the From address to use when sending the reply. Normally this is just taken from the To address of the original message, but this is not possible when replying to a message that was sent to multiple people. Even though the code attempts to find the right address automatically, it can sometimes get the wrong one and send an automatic reply that appears to be from the wrong person. For this reason, you should include a header line like From:Jamie Cameron at the top of your reply text to set the correct address.

If you are setting up an automatic reply alias for a Unix user, it is usually a good idea to have a copy of all email sent to the user stored in his mailbox as well. To do this, re-edit the alias and select Email address from the second type menu. Then enter the user's name preceded by a backslash into the text field next to it (like \jcameron ) and hit Save .

Creating filter aliases

Sendmail aliases normally forward email messages to their destinations regardless of their content. However, it is possible to use this Webmin module to create an alias that forwards to different addresses or files depending on the headers or body of a message send to it. When you create an alias like this, the module internally creates a script that is passed the contents of email to the alias as input, just like a command specified using the Feed to program alias type.

A filter consists of a series of rules, each of which has a condition and action. The condition specifies a header to check and text to check if the header contains, while the action specifies an address to forward to or a file to append the message to. When a message is received by the filter, it is checked against the rules in order until one that matches is found and its action performed. At the end of the list is a default action, which determines where to forward email that does not match any of the conditions.

Compared to other mail filtering or classification programs like Procmail Mail Filter and SpamAssassin Mail Filter, Webmin's filters are limited in their functionality and flexibility. However, they are easy to create and require no additional software. To create one, the steps to follow are:

  1. On the module's main page, click on the Mail Aliases Symbol.
  2. In the Create Alias form, enter a name for the alias and select Apply filter file from the type menu. The alias name can be that of an existing Unix user if you want to filter his email before delivery.
  3. In the field next to the type menu, enter the path to a file that will contain the filter rules, such as /home/someuser/filter.rules . Because the file format is fairly complex, you should not enter the name of any existing file unless it was created by following these same steps.
  4. Klicken Sie auf Erstellen button to add the alias, and then click on its name in the list to edit again.
  5. Follow the Edit link next to the filter rules file field. This will take you to the form shown in Figure 37-5, which contains a table of empty rows for entering new rules and a text field for the default action address.
  6. In the first row, select the header that you want to filter on from the menu next to If the . Or to check the entire un-decoded email body, select body from the list instead. To have the action performed if some text is found in the header or body, select matches from the second menu. Alternately, to perform the action only when some text is not found, choose *doesn't match* instead. In the field next to this menu, enter the text that the filter should check the header or body for. The comparison will always be case-insensitive, and Perl regular expression characters like [, ., + and * can be used. In the *then forward to* field, enter the email address or mailbox name to which messages matching the condition that you specified will be sent. It is also possible to enter an absolute file path like /home/someuser/mail/somefolder to which email will be appended instead. This could be another user's mail file, or a mail folder - however, it must be writable by the Unix user daemon that Sendmail runs as.
  7. To enter another rule, fill in the second blank row by repeating the instructions in the previous step again. Only five empty rows are displayed, but you can create more than five rules by saving and re-editing the filter file.
  8. In the Otherwise forward to field at the bottom of the table, enter an address or filename to which messages that do no match any of the rules will be sent or appended. If this is left blank, unmatched email will be thrown away!
  9. Finally, click the Save button to activate the new filter rules. To make sure they are really working, you should send a few text messages to the alias and check that they are delivered correctly.


The filter creation form

To have email forwarded to multiple addresses by a single rule or the default action, just enter them separated by commas into one of the forward to Felder. Or enter the name of another alias as the destination, which can then send messages to multiple files, addresses and/or programs.

When creating a filter alias with the same name as a Unix user, it is often useful to specify that messages matching some rule be delivered to the user's normal mailbox. However, just entering the user's name as the destination would be a big mistake, as this would trigger an endless loop through the filter! Instead, you should prepend a backslash to the username, like \jcameron . As with aliases, this tells Sendmail to ignore any aliases for this mailbox.

Because it can often be difficult to work out what a filter alias is doing and why it is doing it, the filter script creates a log file in the same directory as the rules file. The log has the same name as the filter file, but with .log appended. Every message received by the alias and delivered to some destination by the filter causes a line to be added to the log, containing the date, time, sender, destination and rule matched. The log file will only be created if the directory or log itself is writable by the daemon user though.

Modulzugriffskontrolle

The Sendmail Configuration module probably has the most powerful access control features of any module in Webmin. You can use them to limit the aliases and virtual addresses a Webmin user can edit, or restrict him to reading only the mailboxes of certain Unix users. These features are most useful in a virtual hosting environment, where customers own email domains and the user accounts. On this kind of system, you can create one Webmin user per customer who can only manage the address mappings, aliases and mailboxes for his own domains, while not being able to use other features of the module or touch other customers' information.

Once you have created a Webmin user who has access to the module (as explained in WebminUsers), follow these steps to restrict what he can do:

  1. In the Webmin Users module, click on Sendmail Configuration next to the name of the user that you want to restrict.
  2. Ändern Sie die Modulkonfiguration bearbeiten? Feld auf Nein , so that he cannot modify paths to Sendmail programs and files.
  3. Set all of the Yes/No fields in the second section to No , which will prevent the user from seeing most of the module's icons.
  4. Wählen Sie Nein from the Can manage mail queue? menu, or *View only* if you just want the module user to be able to see the contents of the queue. Wählen Sie Ja aus would be a bad idea, as it would allow him to delete queued email belonging to other domains.
  5. For the Address mappings this user can edit field, select the Matching option and enter a Perl regular expression for allowable mapping sources into the text field next to it. For example, to let him create and edit mappings in the domains foo.com and example.com , you should enter (@foo.com|@bar.com)$.
  6. It is safe to select all of the checkboxes in the *Address mapping types this user can edit* field.
  7. To limit the number of mappings that the user can create, select the second radio button in the *Maximum number of address mappings* field and enter a number into the box next to it. This can be useful for preventing a single customer from more address mappings than he has paid for.
  8. In the Aliases this user can edit field, select Matching and enter a regular expression that only lets him modify or create aliases starting with the customer's domain names. For example, if the user owns the domains foo.com and example.com you should enter ^(foo|example)- to limit him to aliases like foo-jcameron or example-fred . This naming convention ensures that users cannot step on each others' aliases.
  9. In the Alias types this user can edit field, de-select the checkboxes for types of aliases that the Webmin user should not be allowed to create. Good candidates to deny access to are Write to file , Feed to program , Autoreply and *Filter file*, as they use the permissions of the Sendmail daemon user and thus may be a security risk.
  10. To limit the number of aliases that the customer can create, select the second radio button in the Maximum number of aliases field and enter the maximum into the box next to it.
  11. To stop the Webmin user creating aliases that run programs, append to files or use address files outside a certain directory, enter it into the Limit files and program to directory Feld. Unfortunately, this can be subverted by the clever use of symbolic links and so is not a very strong security measure.
  12. In the Outgoing addresses this user can edit field, select Matching and enter the same regular expression as in the Address mappings this user can edit Feld. This will limit the user to re-writing addresses for only his own domains. Or to prevent the editing of outgoing addresses at all, select None - in most cases, there is no need for a Sendmail administrator to edit them anyway.
  13. In the Users whose mail can be read field, select one of the last five options to limit the customer to only those Unix users who belong to him. If he has been given limited access to the Users and Groups module as well, then you should allow him to read the email of the same users that he can create an edit in that module.
  14. Leave the rest of the fields on the form set to their defaults - they are only really useful if you are setting up the module as a web- based mail reading interface. Although this is possible, there are much better alternatives such as Usermin.
  15. Klicken Sie auf Speichern button to make the restrictions for the user active.

Even though it is possible to configure this module to limit a user to certain domains, the module's interface is not particularly friendly compared to products like Plesk or Cpanel. These are web-based virtual server management interfaces that have been designed from the ground up for that purpose, unlike Webmin which was design to allow the management of everything on a system.

Configuring the Sendmail Configuration module

The Module Config link on the main page takes you to a form seen in many other modules for editing settings that apply to the operation of the module itself. Those listed under Configurable options relate to its user interface, while those under System configuration define the paths to the Sendmail programs and files.

Settings in the latter group do not usually need to be changed, as by default they are set to match the Sendmail package supplied with your operating system. However, if you have compiled and installed the MTA yourself from the source code, then it is quite possible that they will be incorrect.

Inhalt

See also

  • Introduction to Internet Mail

Webmin
  1. So konfigurieren Sie einen Apache-Webserver

  2. So installieren Sie DKIM auf einem Ubuntu-Server

  3. Eine Anleitung für Systemadministratoren zur Konfiguration eines E-Mail-Servers

  4. QMail-Mailserver

  5. Konfiguration des Mailservers zum Weiterleiten von E-Mails?

Usermin-Konfiguration

Dovecot IMAP/POP3-Server

Postfix-Mailserver

So installieren Sie den Exim-Mailserver unter CentOS 6

Postfix-Mailserver-Setup unter Ubuntu 14.04

Postfix-Mailserver-Setup auf Ubuntu 20.04