[Postfixbuch-users] disclaimer in postfix mit kav und altermime

Kai Fürstenberg kai_lists_postfixbuch at fuerstenberg.ws
Do Mär 1 15:40:11 CET 2007


Oliver Rau wrote:
> 
> Kai Fürstenberg schrieb:
>>
>> Mmmmh. Damit könntest du Recht haben. :-(
>> Dann wäre vielleicht
>> pickup    fifo  n       -       n       60      1       pickup
>> 		-o content_filter=lmtp:127.0.0.1:10030
>> pickup2   fifo  n       -       n       60      1       pickup
>>
>> discl     unix  -     n       n       -   -   pipe
>>      flags=Rq user=discl argv=/etc/postfix/disclaimer
>>      -f ${sender} -- ${recipient}
>>      -o content_filter=
>>      -o pickup_service_name=pickup2
>>
>> ein Ansatz.
> 
> das funktioniert leider so auch nicht, da
> 1. wieder den lmtp-loop drin
> 2. recipient wird nicht uebergeben siehe log

Aaaaarrrghl. OK.

> problem/fehler im disclaimer script?

Wohl eher nicht, oder aber ja (s.u):
> Mar 1 12:53:10 mail postfix/lmtp[6986]: A6C8380B: 
> to=<content_filter=@mail.systemlogistik.dpd.de>, 
> orig_to=<content_filter=>, relay=127.0.0.1[127.0.0.1], delay=0, 
> status=bounced (host 127.0.0.1[127.0.0.1] said: 552 
> <content_filter=@mail.systemlogistik.dpd.de> Error ! (in reply to end
    ^^^^^^^^^^^^^^^^^^^^^^
> of DATA command))

Die -o-Parameter werden dem Disclaimer-Skript als Empfänger übergeben. 
:-( Geht also nicht.

Überlegung: Die Content-Filter umdrehen. Das Problem ist, dass das 
Script eine _neue_ Mail generiert, die dann wieder durch das ganze 
System geht und auch wieder beim Disclaimer landet (Danke für den 
Hinweis mit dem Fehler im Script). Dann hast du deinen Loop.

Beim smtpd den content-filter auf discl setzen, pickup belassen, pickup2 
löschen. Main.cf kann bleiben. Ganz unten hab ich eine Zusammenfassung.

Dann folgt:

Scenario 1: Postfix zum relayen:
Das Skript bekommt die Mail über smtpd mit content_filter=discl, ergänzt 
den Disclaimer und schickt die Mail wieder an postfix. Um genau zu sein, 
schickt er eine neue. Pickup (mit content_filter auf KAV) greift sich 
die Mail und schickt sie an den Virenscanner. Der gibt die Mail zurück 
auf Port 10031 wo der content_filter gelöscht wird. Die Mail wird dann 
über smtp (nicht smtpd) weiterverschickt an den relay_host.

Scenario 2: Postfix bekommt von extern eine Mail zur lokalen Zustellung:
Das Skript kekommt die Mail über smtpd mit content_filter=discl. Jetzt 
wird aber kein Disclaimer gesetzt (wegen if-Abfrage auf lokale 
Absenderadresse). Trotzdem schickt das Skript eine neue Mail. Pickup 
greift die Mail auf und jagt sie durch den KAV (wegen seinem eigenen 
content_filter). Auch jetzt wird wieder auf Port 10031 der 
content_filter gelöscht und dann über local zugestellt.

Zusammengefasst:
smtp      inet  n       -       n       -       -       smtpd
   -o content_filter=discl:
pickup    fifo  n       -       n       60      1       pickup
   -o content_filter=lmtp:127.0.0.1:10030
127.0.0.1:10030     inet  n      n      n      -      20     spawn
   user=kluser   argv=/opt/kav/5.5/kav4mailservers/bin/smtpscanner
127.0.0.1:10031    inet  n      -      n      -      -      smtpd
   -o content_filter=
   -o local_recipient_maps=
   -o relay_recipient_maps=
   -o smtpd_restriction_classes=
   -o smtpd_client_restrictions=
   -o smtpd_helo_restrictions=
   -o smtpd_sender_restrictions=
   -o smtpd_recipient_restrictions=permit_mynetworks,reject
   -o mynetworks=127.0.0.0/8
   -o strict_rfc821_envelopes=yes
   -o smtpd_error_sleep_time=0
   -o smtpd_soft_error_limit=1001
   -o smtpd_hard_error_limit=1000
discl     unix  -     n       n       -   -   pipe
   flags=Rq user=discl argv=/etc/postfix/disclaimer -f ${sender} --
   ${recipient}

Bisher haben wir immer versucht, den Disclaimer _nach_ dem Virenscan 
anzufügen.

Kai



Mehr Informationen über die Mailingliste Postfixbuch-users