AW: Autoreply-Script sendet nicht an alle Adressen

harald.witt at dpfa.de harald.witt at dpfa.de
Do Apr 11 11:03:52 CEST 2024


Hab das Problem jetzt selbst gelöst: 

Postfix stellt für jeden Transport den Konfigurations-Parameter transport_destination_recipient_limit bereit.
In meinem Fall trage ich daher folgendes in die main.cf ein:

vacation_destination_recipient_limit = 1

Und schon klappt alles 😊

Will man zusätzlich die Einträge im Vacation-Logfile schön zusammen haben hilft eine Verzögerung zwischen zwei deliveries:

vacation_transport_rate_delay = 1s

Viele Grüße
Harald





 

Von: Postfixbuch-users <postfixbuch-users-bounces at listen.jpberlin.de> Im Auftrag von harald.witt at dpfa.de
Gesendet: Donnerstag, 11. April 2024 08:56
An: postfixbuch-users at listen.jpberlin.de
Betreff: Autoreply-Script sendet nicht an alle Adressen

 

Hallo Leute,

 

unser Mitarbeiter Test1 mit der E-Mail-Adresse "test1 at domain.de <mailto:test1 at domain.de> " ist nicht mehr da.

Deshalb gibt es in den virtual_alias_maps folgende Zeile:

 

test1 at domain.de <mailto:test1 at domain.de>  test2 at domain.de,test1#domain.de at autoreply.domain.de <mailto:test2 at domain.de,test1#domain.de at autoreply.domain.de> 

 

Da ist also eine Weiterleitung an den User Test2 und an eine Autoreply-Adresse, damit dem Absender eine entsprechende Info zukommt.

 

Die Subdomain autoreply.domain.de hat einen eigenen Transport namens "vacation" in der transport_maps.

Entsprechend wurde der Transport in der master.cf definiert, welcher auf ein Perl-Script piped:

 

vacation   unix  -       n       n       -       -       pipe

  flags=Rq user=vacation argv=/usr/lib/postfix-vacation/vacation.pl -f ${sender} -- ${recipient}

 

Soweit funktioniert alles prima. Aber nun geht der User Test2 in den wohlverdienten Urlaub und macht seinerseits eine Abwesenheitsnotiz:

Dadurch steht in den virtual_alias_maps eine zweite Zeile mit:

 

test2 at domain.de <mailto:test2 at domain.de>  test2 at domain.de,test2#domain.de at autoreply.domain.de <mailto:test2 at domain.de,test2#domain.de at autoreply.domain.de> 

 

Die E-Mails wird also an den User Test2 tatsächlich ausgeliefert und zusätzlich eine Abwesenheitsnotiz gesendet.

Postfix macht das auch ganz prima, wie man dem Logfile entnehmen kann:

 

... to=<test1#domain.de at autoreply.dpfa.de <mailto:test1#domain.de at autoreply.dpfa.de> >, orig_to=<test1 at domain.de <mailto:test1 at domain.de> >, relay=vacation, ... (delivered via vacation service)

... to=<test2#domain.de at autoreply.dpfa.de <mailto:test2#domain.de at autoreply.dpfa.de> >, orig_to=<test1 at domain.de <mailto:test1 at domain.de> >, relay=vacation, ... (delivered via vacation service)

 

Blöder Weise wird aber nur eine Abwesenheitsnotiz vom Perl-Script gelogged, nämlich die von Test1. 

 

Tauscht man die Zeilen in der virtual_alias_maps wird die von Test2 gelogged bzw. zumindest das Script aufgerufen. 

Wirklich gesendet wird dann natürlich nichts, weil test2 at domain.de <mailto:test2 at domain.de>  ja gar nicht im to: odeer cc: header drinsteht. Aber der Aufruf des Perl-Scripts müsste im Logfile drinstehen.

 

Weiß jemand wie man dem abhelfen kann? Mir drängt sich der Verdacht auf, dass beide Mal in dieselbe pipe geschrieben wird?

Kann man in dem Fall in der master.cf dafür sorgen, dass immer eine neue pipe genommen wird und jeder Script-Aufruf ein neuer Prozess ist?

 

Vielen Dank schon mal

Harald

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://listi.jpberlin.de/pipermail/postfixbuch-users/attachments/20240411/69a50697/attachment.htm>


Mehr Informationen über die Mailingliste Postfixbuch-users