39. pepsi-stage-relay-to-smarthost¶
Leitet über einen konfigurierten vorgelagerten Smarthost weiter.
39.1. Rolle¶
pepsi-stage-relay-to-smarthost leitet Mail an einen konfigurierten vorgelagerten MTA (Smarthost) weiter, nach Empfängerdomain gewählt, statt MX-Hosts direkt zu kontaktieren. Es ist die andere austauschbare Zustell-Stage. Referenz: pepsi-stage-relay-to-smarthost(1).
39.2. Funktionen¶
39.2.1. Smarthost-Routing¶
Routet jede Empfängerdomain zu dem
[…-mta-<name>], dessenDOMAINSsie auflistet, oder zum einzelnenCATCH_ALL-MTA; eine Domain ohne passenden MTA ist ein dauerhafter Fehler. Eine Domain darf nur von einem MTA aufgelistet werden. Die MTA-Abschnitte werden von allen Smarthost-Relay-Stages geteilt.Keine MX-Entdeckung und kein DNS-gelerntes MTA-STS — es spricht nur mit den konfigurierten Smarthosts.
39.2.2. Transport und Authentifizierung¶
Transport pro MTA
plain/tls(implizit) /starttls(RFC 3207, der Standard).Zertifikatsverifikation gegen den System-Store (plus ein optionales zusätzliches
TLS_CA) oder zum Testen deaktiviert; ein optionales Client-Zertifikat (TLS_CLIENT_CERT/TLS_CLIENT_KEY).SMTP AUTH (RFC 4954), je MTA:
none,plain,login,external,cram-md5,digest-md5,scram-sha-1/scram-sha-256und ihre-plus-Formen zur Kanalbindung,ntlm,gssapi,oauthoderauto, um das stärkste vom Server angebotene Passwortverfahren zu wählen. Die meisten nehmenUSERNAME/PASSWORD;gssapinimmtSERVICE_NAME/KRB5CCNAME,ntlmnimmtNT_DOMAIN/NT_WORKSTATIONundoauthnimmtUSERNAME/TOKEN_FILE.DANE/TLSA (RFC 7672) je MTA-Abschnitt:
DANE = off | warn | strict, Standardwertwarn.HELO_NAMEpro MTA (StandardwertSERVER_NAME).
39.2.3. Zustellung, Wiederholung und Bounce¶
Sendet mit dem eigenen Envelope-Absender der Nachricht, einen Empfänger pro Versuch (eine Zeile mit mehreren Empfängern wird zuerst in eine Zeile je Empfänger aufgeteilt).
Bei Erfolg schließt es den Datensatz ab (oder schaltet zu
NEXT_STAGEweiter).Exponentieller Backoff bei vorübergehendem Fehler bis
MAX_LIFETIME; Schleifenerkennung überMAX_HOP_COUNT.Ein dauerhafter Fehler (einschließlich keines passenden MTA) routet zu
BOUNCE_STAGE(oder markiertfailed); ein dauerhafter Fehler eines Bounces wird verworfen, nie erneut gebounct. Abgelehnte Zugangsdaten sind ein vorübergehender Fehler, nie ein Bounce.
39.2.4. DSN und Inhaltsanpassung¶
Propagiert
RET/ENVID/NOTIFY/ORCPTan den Smarthost nur, wenn erDSNankündigt (RFC 3461); erzeugt Fehler-/Erfolgs-/Verzögerungsberichte nach denselben Regeln wie die direkte Stage.Erneutes Ankündigen oder Herabstufen von
8BITMIME/SMTPUTF8pro Hop (RFC 6152 / RFC 6531 / RFC 2045 / RFC 2047).
39.3. Konfiguration¶
[stage-<name>] mit PROGRAM = pepsi-stage-relay-to-smarthost: SERVER_NAME (erforderlich), NEXT_STAGE/BOUNCE_STAGE, die Timeouts (CONNECT_TIMEOUT/COMMAND_TIMEOUT/DATA_TIMEOUT), die Wiederholungsrichtlinie (RETRY_INITIAL/RETRY_MAX_INTERVAL/RETRY_FACTOR/MAX_LIFETIME/ DELAY_DSN_AFTER), MAX_HOP_COUNT, ADDRESS_FAMILY (der Standardwert, den jeder MTA-Eintrag erbt) und die DANE-Resolver-Einstellungen DNS_SERVERS/DNS_TIMEOUT. Die vorgelagerten MTAs werden in gemeinsamen [pepsi-stage-relay-to-smarthost-mta-<name>]-Abschnitten definiert: HOST/PORT (beide erforderlich), MODE, TLS_VERIFY/TLS_CA/TLS_CLIENT_CERT/ TLS_CLIENT_KEY, AUTH mit seinen Zugangsdaten, DANE, ADDRESS_FAMILY, HELO_NAME und Routing über DOMAINS / CATCH_ALL. Vollständige Referenz: pepsi-stage-relay-to-smarthost(1).
39.4. Privilegien¶
Installiert setgid pepsi-token (Modus 2550, Eigentümer pepsi:pepsi-token) und daher ein eigenständiges Binärprogramm statt eines der in das vereinheitlichte pepsi-Binärprogramm eingefalteten Programme. Der Dispatcher führt die Stage als unprivilegierten Benutzer pepsi aus; das setgid-Bit gibt dem Worker egid=pepsi-token, und das ist es, was ihm erlaubt, die gruppenbeschränkten Dateien zu lesen, die er braucht — die OAuth-Zugriffstoken, die pepsi-helper-token-refresh schreibt (AUTH = oauth), einen TLS_CLIENT_KEY für wechselseitiges TLS und einen Kerberos-Credential-Cache (AUTH = gssapi) —, ohne pepsi zu einem dauerhaften Mitglied dieser Gruppe zu machen. Die Datei ist nicht für alle ausführbar: Die Stage akzeptiert -c, sodass jeder lokale Benutzer, der sie ausführen kann, sie auf einen eigenen Server richten und diesem Server die Zugangsdaten schicken könnte.
39.5. State¶
Identisch mit pepsi-stage-relay-to-internet:
Eingaben:
state.dsnundstate.origin.Ausgaben:
attempts/last_error/delay_sentbei Pause; einstate.bounce-Objekt beim Routen zur/Einreihen für die Bounce-Stage;last_errorbei terminalemfail.state.dsn/state.originbleiben erhalten.
39.6. Siehe auch¶
pepsi-stage-relay-to-internet, pepsi-stage-bounce, pepsi-helper-token-refresh, Unterstützte Funktionen, pepsi-stage-relay-to-smarthost(1).