mail mit 5xx rejecten, aber dennoch speichern / lokal ausliefern

Jan P. Kessler postfix at jpkessler.info
Do Jul 20 19:19:17 CEST 2017


> Moin Moin,
>
> Vorweg: Ja, das ist eine eher schräge Idee und ich mache das
> nur auf einem (mehr oder weniger) Forschungs-Setup¹ ;-)
>
> Ich würde gerne auf einem bestimmten Relay _jegliche_ eingehende
> Mail nach end of DATA mit einem 5xx rejecten, die eingelieferte
> Mail aber dennoch "silent" ganz normal mit einer zusätzlichen
> Header-Zeile angereichert ausliefern. Falls der Ziel-Mailserver
> Probleme hat, sollte es idealerweise keinen bounce geben.
>
> Gibt es einen eleganten, simplen, Weg, sowas mit postfix
> zu erreichen? Ein explizit dafür geschriebener policy-daemon
> erscheint als overkill, always_bcc wird wohl in dem Fall
> nicht anwendbar sein.

Nein und ein Policy Daemon würde hier ebenfalls nicht funktionieren. Der 
sieht nur Envelope Daten und kann dann auch nur postfix veranlassen, 
anzunehmen oder zu verweigern.

Allenfalls mit einem Prequeue Content Filter oder Milter wäre das lösbar 
(ohne zu bouncen jdf). Der bekommt die Mail und kann nach dem 
END_OF_DATA des Client einen 5xx zurückgeben, die Mail aber trotzdem 
weitertransportieren.

> ¹) Usecase ist ein IPv6-only System, bei dem ich den
>     potentiellen IPv4-only Clients schnell eine
>     Fehlermeldung zukommen lassen möchte, daß Ihre Mail
>     so nicht ankommen wird. Idealerweise sofort und
>     mit einem gut verständlichen Text und in der
>     Hoffnung, daß das überhaupt jemand liest.
>
>     Ich habe schon verschiedene Ansätze probiert, z.B.
>     einfach gar keinen IPv4-MX zu deinieren. Da dauert
>     es ewig, bis die Absender was mitbekommen und ich
>     kann die Queue-Haltezeit natürlich nicht selbst
>     kontrollieren.  Darüber hinaus versteht fast niemand,
>     was das Problem ist, weil aus Sicht des IPv4-only
>     Servers das Ziel einfach gar nicht existiert
>     und die Fehlermeldung dann einfach irreführend ist.
>     Einen "sprechenden" MX Namen zu verwenden, also
>     z.B. "this.domain.is.ipv6.only.<sld>.<tld>" macht
>     die Sache nicht unbedingt besser. Daher nun der
>     Ansatz, vorrübergehend quasi einen IPv4-Bouncer
>     einzurichten. Nicht schön, würde im Moment
>     aber erstmal für meine Zwecke reichen, denn es
>     gibt einen extra Twist: Ich habe mich entschieden,
>     das mit einer privaten Domain zu machen, die schon
>     lange in Benutzung ist und möchte sichergehen, daß
>     ich im Zweifel keine Mails, auch keine von wichtigen
>     $IPv4OnlyServices wie meiner Bank, DB, Github, [...]
>     verliere. Ich bin zwar wahnsinnig, aber nicht
>     komplett irre ;-)

Ab hier IMO:

Naja, ich weiß nicht... Du erzeugst vermutlich auch Bounces zu dieser 
Liste. Von "außen" betrachtet und im normalen Mengengewerk von Admins 
großer Installationen wirkt das "unzustellbar" und Deine Subscription 
wird entfernt. Was genau willst Du denn erreichen? Meinst Du, die Github 
Leute oder die Admins der DB lesen Deine Bounces und konfigurieren dann 
nen v6-only Transport für Dich?

Wenn Du nix verlieren willst, nimm 'ne "Labordomain" und gib die Adresse 
nicht überall an. Oder setze MX10 auf v6 und MX20 auf v4.

Wenn Du "hart" sein willst, kill' den v4 MX und steh's durch. Dass Du 
mit dem Entschluss bereits Probleme hattest, könnte aber darauf 
hindeuten, dass ein Teil der Welt noch nicht so weit ist wie Du und auf 
v4 noch nicht verzichten kann/möchte - oder vielleicht bist es ja auch 
Du, der nicht auf die schnöden v4-Mails verzichten möchte ;)

Vg, Jan





Mehr Informationen über die Mailingliste Postfixbuch-users