[Postfixbuch-users] recipient_restrictions reihenfolge

Jan P. Kessler postfix at jpkessler.info
Do Mär 12 17:25:08 CET 2009


Andre Hübner schrieb:
>
> Hallo,
>
>>> while read answer; do [ -z "$answer" ] && printf "action=dunno\n\n"; 
>>> done
> das geht bei mir auch. der unterschied ist das du in der schleife 
> praktisch für jede zeile die action zurückgibst.

Nein, ich darf mal übersetzen:

Lies endlos zeilenweise in $answer. Wenn $answer leer ist, gib 
"action=dunno\n\n" aus.

> was ist bei dir wenn du das printf aus der schleife nimmst und nach 
> dem done ausgibst?

Das würde dann niemals aufgerufen, bzw nur dann, wenn der smtpd die 
Verbindung kappt. Ein policy daemon beendet die Verbindung aber nicht, 
sondern hält sie offen. Das Ende eines Requests wird mit einer leeren 
Zeile (also "^\n$") markiert.

> es sollte doch eigentlich kein problem sein nach abfangen der 
> parameter die weitere verarbeitung außerhalb der schleife zu machen 
> und dann die action auszugeben?

Nein, das hätte nicht das gewünschte Resultat (s.o.). Schau' Dir doch 
einfach mal Wietses mini perl Implementierung an - die verdeutlicht sehr 
einfach und präzise, wie es geht. Sehr gut zum Lernen eignet sich auch 
postgrey, da der Code einen relativ geringen Umfang hat und klar 
strukturiert ist. Dort erfährst Du dann auch rudimentäres zur 
Eingabevalidierung, die bei Netzwerkprogrammierung u.v.a. bei der 
Verarbeitung von Parametern wichtig ist, die Dein Gegenüber frei wählen 
kann.

Und bitte nimm nicht mein Beispiel auf einem Produktivsystem. Das ist 
sehr unsauber und fehlerhaft und sollte nur zeigen, dass man sehr wohl 
mit 'printf "action=dUnNo\n\n"' arbeiten kann.

>> Deines Skripts. Wagst Du Dich, uns das mal in Gänze zu zeigen?
> ich bin doch so schüchtern ;)

Ich merk' das ;) Das macht es aber schwierig, Dir zielgerichtet zu helfen.




Mehr Informationen über die Mailingliste Postfixbuch-users