Postfix/Zustellung
Wie Postfix E-Mails zustellt
- Sobald eine Nachricht die Eingangswarteschlange der nächste Schritt um es zu liefern.
- Die Abbildung zeigt die Hauptkomponenten von Postfix Geräte zur Postzustellung.
- Namen gefolgt von einer Nummer sind Postfix Befehle oder Serverprogramme, während nicht nummerierte Namen innen schattiert sind Bereiche stellen Postfix-Warteschlangen dar.
trivial-rewrite(8) | smtp(8) | -> | Network | |||||||
/ | ||||||||||
|
- | lmtp(8) | -> | Network | ||||||
/ | ||||||||||
incoming | -> | active | -> | qmgr(8) | --- | local(8) | -> | File, command | ||
|
\ | |||||||||
- | virtual(8) | -> | File | |||||||
deferred | \ | |||||||||
pipe(8) | -> | Command |
- Der Warteschlangenmanager
- (der Serverprozess qmgr(8) in der Abbildung) ist das Herzstück der Mail-Zustellung von Postfix. Es kontaktiert die smtp(8) , lmtp(8) , local(8) , virtual(8) , pipe(8) , discard(8) or error(8) Zusteller und sendet eine Zustellanforderung für einen oder mehr Empfängeradressen. Die Discard(8)- und Error(8) -Zustellung Agenten sind etwas Besonderes: Sie verwerfen oder senden alle E-Mails zurück und sind es nicht in der Abbildung oben gezeigt.
Der Warteschlangenmanager verwaltet eine kleine aktive Warteschlange mit der Nachrichten, die für die Zustellung geöffnet wurden. Die aktive Warteschlange fungiert als ein begrenztes Fenster für potenziell große eingehende oder zurückgestellte Warteschlangen . Die eingeschränkte aktive Warteschlange verhindert die Ausführung des Warteschlangenmanagers aus Speicher unter hoher Last.
Der Warteschlangenmanager verwaltet eine separate zurückgestellte Warteschlange für Mail die nicht zugestellt werden können, so dass ein großer Mail-Rückstau nicht auftritt normale Warteschlangenzugriffe verlangsamen. Die Strategie des Warteschlangenmanagers für verzögerte E-Mail-Zustellversuche sind in QSHAPE_README und TUNING_README- Dokumente.
- Der trivial-rewrite(8) -Server
- löst jeden Empfänger auf Adresse gemäß ihrer lokalen oder entfernten Adressklasse, wie definiert im ADDRESS_CLASS_README . Zusätzliche Routing-Informationen kann mit der optionalen transport(5) Tabelle Das trivial-rewrite(8) -Server fragt optional die relocated(5) -Tabelle ab für Empfänger, deren Adresse sich geändert hat; Mail für solche Empfänger ist mit einer Erklärung an den Absender zurückgeschickt.
- Der smtp(8) -Client
- sucht nach einer Liste von Mail-Exchangern dem Zielhost, sortiert die Liste nach Präferenz und versucht es mit jedem Server der Reihe nach, bis er einen Server findet, der antwortet.
- Es dann kapselt den Absender, den Empfänger und den Nachrichteninhalt nach Bedarf durch das SMTP-Protokoll; dies beinhaltet die Umwandlung von 8-Bit-MIME in 7-Bit-Codierung.
- Der lmtp(8) -Client
- spricht ein dem SMTP ähnliches Protokoll ist für die Zustellung an Postfachserver wie Cyrus optimiert. Das Vorteil dieser Einrichtung ist, dass eine Postfix-Maschine mehrere füttern kann Postfachserver über LMTP. Das Gegenteil gilt auch: Eins Mailbox-Server kann über LMTP von mehreren Postfix-Rechnern gespeist werden.
- Der local(8) Zustellungsagent
- qmail-kompatible maildir-Dateien, systemweite Aliase im Sendmail-Stil(5) Datenbanken und benutzerspezifische .forward-Dateien im Sendmail-Stil.
- Mehrere lokale Delivery Agents können parallel betrieben werden, aber Parallel Delivery auf denselben Benutzer beschränkt ist.
- Der örtliche (8) Lieferdienst hat Haken für alternative Formen von lokale Zustellung:
- Sie können es so konfigurieren, dass es an Postfachdateien zugestellt wird in Benutzerstammverzeichnissen können Sie es so konfigurieren, dass es das Postfach delegiert Übermittlung an einen externen Befehl wie procmail
- oder Sie können delegieren Zustellung an einen anderen Postfix-Zusteller.
- Der virtual(8) -Zustellungsagent
- ist eine Bare-Bones-Zustellung Agent, der an eine Mailbox im UNIX-Stil oder ein maildir im Stil von qmail liefert nur Dateien.
- Dieser Zustellagent kann Post für mehrere zustellen Domains, was es besonders geeignet macht, viele zu hosten kleine Domänen auf einer einzelnen Maschine.
- Dies ist in der beschrieben VIRTUAL_README- Dokument.
- Der Pipe(8) -Mailer
- ist die ausgehende Schnittstelle zu anderer Mail Verarbeitungssysteme (der Postfix- sendmail(1) Befehl eingehende Schnittstelle). Die Schnittstelle ist UNIX-kompatibel: Sie bietet Informationen auf der Kommandozeile und im Standard-Eingabestrom, und erwartet einen Prozess-Exit-Statuscode wie in <sysexits.h> definiert. Beispiele für die Zustellung über den Pipe(8) -Mailer finden Sie in der MAILDROP_README und UUCP_README- Dokumente.