38. pepsi-stage-relay-to-internet¶
Direkte Zustellung an den MX mit MTA-STS.
38.1. Rolle¶
pepsi-stage-relay-to-internet stellt eine Nachricht direkt an die Mail-Exchanger der Empfängerdomain zu und führt seine eigene MX-Entdeckung und TLS-Richtliniendurchsetzung durch. Es ist eine der beiden austauschbaren Zustell-Stages. Referenz: pepsi-stage-relay-to-internet(1).
38.2. Funktionen¶
38.2.1. MX-Entdeckung (RFC 5321 / RFC 7505)¶
Eigene
MX-Abfrage, Hosts in aufsteigender Präferenz versucht (gleiche Präferenz in zufälliger Reihenfolge); eine Domain ohneMXfällt auf ihre Adress-Einträge zurück (impliziter MX, RFC 5321 §5.1).Null-MX (RFC 7505,
0 .) und eine nicht existierende Domain sind dauerhafte Fehler, nie Wiederholungen.Happy-Eyeballs-Adressauswahl über A/AAAA, mit
ADDRESS_FAMILYgeschnitten; aufgelöste Adressen werden pro Adresse (mit Verbindungs-Gesundheit) in derpepsi.dns_address-Tabelle zwischengespeichert, sodass eine funktionierende Adresse bevorzugt wird, bis ihr DNS-TTL abläuft.
38.2.2. Transportsicherheit (RFC 8461 / RFC 6125)¶
MTA-STS-Entdeckung und -Durchsetzung (RFC 8461) (sofern nicht
MTA_STS = no): Eineenforce-Richtlinie beschränkt die Zustellung auf gelistete MX-Hosts überSTARTTLSmit einem für den Host gültigen Zertifikat (RFC 6125). Einetesting-Richtlinie wird auf dieselbe Weise validiert und das Ergebnis für TLS Reporting festgehalten, doch ein Fehlschlag fällt auf opportunistischesSTARTTLSüber alle MX-Hosts zurück; ohne Richtlinie verwendet die Zustellung opportunistischesSTARTTLS. Richtlinienabfragen sind nur fail-open, wenn nichts zwischengespeichert ist. Dermta-sts-Unterbefehl gibt die anwendbare Richtlinie aus.DANE/TLSA (RFC 7672), pro MX-Host:
DANE = off | warn | strict, Standardwertwarn. Wenn brauchbare TLSA-Einträge vorliegen und das MX-RRset DNSSEC-gesichert ist (Pepsi liest das AD-Bit des Resolvers; es validiert DNSSEC nicht selbst), haben sie für diese Verbindung Vorrang vor MTA-STS — außer dass der Moduswarndie PKIX-Validierung einerenforce-MTA-STS-Richtlinie nie ersetzt. Eine Abweichung bei einem brauchbaren Eintrag schiebt die Zustellung unterstrictauf und warnt unterwarnnur. Ein Host, dessenTLSA-Einträge allesamt unbrauchbar sind, muss dennochSTARTTLSanbieten (RFC 7672 §2.2).
38.2.3. Zustellung, Wiederholung und Bounce¶
Sendet mit dem eigenen Umschlagabsender der Nachricht (Null-Absender bei Bounces), ein Empfänger pro Versuch: Ein Datensatz mit mehreren Empfängern wird zuerst in einen Datensatz je Empfänger aufgeteilt.
Bei Erfolg schließt es den Datensatz ab (oder schaltet zu
NEXT_STAGEweiter).Exponentieller Backoff bei vorübergehendem Fehler (
RETRY_INITIAL/RETRY_MAX_INTERVAL/RETRY_FACTOR); nachMAX_LIFETIMEwird ein vorübergehender Fehler dauerhaft.Schleifenerkennung über
MAX_HOP_COUNTReceived:-Header.Ein dauerhafter Fehler einer gewöhnlichen Nachricht routet zu
BOUNCE_STAGE(oder markiert den Datensatz alsfailed); ein dauerhafter Fehler eines Bounces wird nie erneut gebounct — eine Kopie geht anPOSTMASTER, falls gesetzt, sonst wird sie verworfen.
38.2.4. DSN-Propagierung und -Erzeugung (RFC 3461)¶
Propagiert
RET/ENVID/NOTIFY/ORCPTan den MX nur, wenn erDSNankündigt.Bei dauerhaftem Fehler übergibt es das
NOTIFY/ORCPT/ENVIDdes Empfängers an die Bounce-Stage, sodass eine Failure-DSN nur dann erzeugt wird, wenn angefordert.Success-DSN (
Action: delivered) beiORIGINATE_SUCCESS_DSN+NOTIFY=SUCCESS; Delay-DSN (Action: delayed, einmal), wennDELAY_DSN_AFTERabläuft undNOTIFY=DELAY.
38.2.5. Inhaltsanpassung (RFC 6152 / RFC 6531)¶
Passt die Nachricht an die Erweiterungen an, die der MX ankündigt: kündigt
BODY=8BITMIME/SMTPUTF8erneut an, wenn unterstützt, andernfalls stuft es den Nachrichtentext (RFC 2045) und die UTF-8-Header (RFC 2047) herab. Eine Nicht-ASCII-Adresse, die einem Nicht-SMTPUTF8-Hop gegenüber nicht darstellbar ist, wird gebounct, und ebenso ein Nachrichtentext, der nach der Herabstufung immer noch 8-Bit ist — RFC 6152 §3 erlaubt keinen Versuch, ihn zu senden.
38.3. Konfiguration¶
[stage-<name>] mit PROGRAM = pepsi-stage-relay-to-internet: SERVER_NAME (erforderlich), NEXT_STAGE/BOUNCE_STAGE, POSTMASTER, 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, DNS (DNS_SERVERS/DNS_TIMEOUT), MTA-STS (MTA_STS/MTA_STS_TIMEOUT), DANE und ADDRESS_FAMILY. Dauern müssen h/m/s-Einheiten verwenden. Vollständige Referenz: pepsi-stage-relay-to-internet(1).
38.4. State¶
Eingaben:
state.dsn(Propagierung + Berichts-Abriegelung) undstate.origin(8BITMIME/SMTPUTF8-Hinweise).Ausgaben:
attempts/last_error/delay_sentbei Pause; einstate.bounce-Objekt (permanent/success/delay) beim Routen zur oder Einreihen für die Bounce-Stage;last_errorbei terminalemfail.state.dsnundstate.originbleiben erhalten.
38.5. Siehe auch¶
pepsi-stage-relay-to-smarthost, pepsi-stage-bounce, Unterstützte Funktionen, pepsi-stage-relay-to-internet(1).