[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