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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

Bjoern Buerger
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.

Für Ideen bin ich dankbar :)

Bjørn

¹) 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 ;-)

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

Bjoern Buerger
On 07/20/17 17:24, Bjoern Buerger wrote:
>  Ich bin zwar wahnsinnig, aber nicht komplett irre ;-)

Und ja:
Ich bin gerade im Urlaub und mir ist langweilig ;-)

Grüße vom Strand,
Bjørn

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

Jan P. Kessler-2
In reply to this post by Bjoern Buerger

> 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


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

Bjoern Buerger
On 07/20/17 19:19, Jan P. Kessler wrote:
> 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.

Hmm, stimmt.

> 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.

ACK. Ich werde mir das Milter Framework mal genauer anschauen.

> Ab hier IMO:

Danke für die Gedanken dazu.

> Naja, ich weiß nicht... Du erzeugst vermutlich auch Bounces zu dieser
> Liste.

Korrekt. Deshalb habe ich alle Listen Subscriptions
vorsichtshalber auf v4-capable Domains verschoben.
Wie gesagt: Ich bin lediglich experimentierfreudig,
nicht total irre ;)

> 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?

Ja. BCP 177.
Aber Ich bin diesbezüglich ein hoffnungsloser Optimist.

> Wenn Du nix verlieren willst, nimm 'ne "Labordomain"
> und gib die Adresse nicht überall an.

Been there, done that. Einen v6-only Server habe ich seit
ca. 2007 laufen, insofern ist das jetzt lediglich die nächste
Iteration auf dem Weg zu einem echten v6-only Produktivsetup.

> Oder setze MX10 auf v6 und MX20 auf v4.

Leider sinnlos, weil Dualstack-Systeme eh in der Regel
mit v6 beginnen würden (bei smtp, http ist wegen
Happy Eyeball Implementierungen in den Browsern unter
Umständen ein anderer Schnack)

Ich weiss schon diverse Dinge, die für mich kaputt gehen werden.

Aber die spannenden Fragen spielen sich z.B. bei den Spamfiltern
ab. Was macht ein System, wenn es weder A, noch A-MX record
sieht? Oder wenn ein System zwar Dualstack kann, aber den
VRFY nur per v4 macht? Das will ich alles mal in RL sehen.

Letztlich ist es mir lieber, wenn der Absender einen klaren und
sofortigen Reject bekommt, als daß Mails an mich tagelang in
fremden Queues herumgammeln und am Ende ein irreführender Bounce
a'la "host not found" dabei rauskommt. Beim sofortigen Reject
kommt der Versender erfahrungsgemäß auf die Idee, anzurufen.

> 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 ;)

Da ich es schon ausprobiert habe, weiss ich ungefähr, was passieren
wird. Ich bin aber recht konservativ und würde wegen der zu Erwartenden
Probleme für eine Übergangszeit gerne noch ein Sicherheitsnetz
einziehen. Wenn nix relevantes mehr in der Backup-Box landet,
schalte ich den v4 MX einfach komplett ab. Das ist dann aber
wieder eine weitere Testrunde.

Ich vermute, daß dieser Teil der Diskussion für die Liste
eher zu sehr OffTopic ist. Follow-Up gerne per PM.


LG,
Bjørn


Loading...