Hallo,
ich wollte auf einem Mailserver (Postfix, Courier, MySQL, Amavis) einen Autoresponder für Urlaubsbenachrichtigungen einrichten, die einfach von jedem User per eMail selbst aktiviert/deaktiviert werden können. Ich verwende das Skript von Charles Hamilton wie auf dieser Seite beschrieben https://www.howtoforge.com/how-to-set-up-a-postfix-autoresponder-with-autoresponse . Das Skript wird hier in der master.cf als content_filter unter dem Service smtp angegeben. Da ich aber die eMails in Echtzeit von Amavis überprüfen lasse durch Portumleitungen (smtpd_proxy_filter=localhost:10024), musste ich den content_filter unter dem Service localhost:10025 definieren (autoresponder:dummy), damit es aufgerufen wird. Dies ist die einzige Abweichung von der Konfigurationsanleitung. Das Aktivieren / Deaktivieren der Benachrichtigungen funktioniert auch soweit. Allerdings wird bei normalen eMails die eMail nur immer einer Empfängeradresse zugestellt, wenn die Mail mehrere Empfängeradressen enthält! Alle anderen werden scheinbar ignoriert. Da weiß ich nicht weiter.

Hier ein paar Angaben aus der master.cf
# port 25 auf Port 10024 umleiten / Echtzeitüberprüfung durch Amavis (kein Store&Foreward)
smtp      inet  n       -       -       -       -       smtpd
  -o smtpd_proxy_filter=localhost:10024
  -o content_filter=

smtps     inet  n       -       -       -       -       smtpd
  -o smtpd_proxy_filter=localhost:10024
  -o content_filter=
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

#Konfiguration Port 10025 für Rückgabe der durch Amavis überprüften eMails
localhost:10025      inet  n       -       -       -       -   smtpd
  -o content_filter=autoresponder:dummy
  -o smtpd_proxy_filter=
  -o smtpd_authorized_xforward_hosts=127.0.0.0/8
  -o smtpd_client_restrictions=
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_data_restrictions=
  -o mynetworks=127.0.0.0/8
  -o receive_override_options=no_unknown_recipient_checks

Am Ender der master.cf steht der Service autoresponder

autoresponder unix - n n - - pipe
flags=Fq user=autoresponse argv=/usr/local/sbin/autoresponse -s ${sender} -r ${recipient} -S ${sasl_username} -C ${client_address}


Mit dieser Einstellung sehe ich dann in mail.log folgende Einträge, wenn ich eine normale eMail an mehrere User sende:

Dec 30 14:36:19 mailserver1 postfix/qmgr[20818]: 6C5FB276291: from=<txba...@web.de>, size=1387, nrcpt=2 (queue active) Dec 30 14:36:19 mailserver1 amavis[16543]: (16543-13) Passed CLEAN, [212.227.17.11] [xx.xx.xxx.xx] <txba...@web.de> -> <us...@mydomain.de>,<us...@mydomain.de>, Message-ID: <54a2aa4e.6020...@web.de>, mail_
id: sCfjhIs-o9we, Hits: -1.9, size: 974, queued_as: 6C5FB276291, 325 ms
Dec 30 14:36:19 mailserver1 postfix/smtpd[20831]: proxy-accept: END-OF-MESSAGE: 250 2.0.0 Ok, id=16543-13, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6C5FB276291; from=<txba...@web.de> to=<us...@mydomain.de> proto=ESMTP helo=<mout.web.de> Dec 30 14:36:19 mailserver1 postfix/smtpd[20831]: disconnect from mout.web.de[212.227.17.11] Dec 30 14:36:21 mailserver1 postfix/pickup[20817]: 730DA2762BD: uid=5002 from=<txba...@web.de> Dec 30 14:36:21 mailserver1 postfix/pipe[20838]: 6C5FB276291: to=<us...@mydomain.de>, relay=autoresponder, delay=2, delays=0.01/0/0/2, dsn=2.0.0, status=sent (delivered via autoresponder service) Dec 30 14:36:21 mailserver1 postfix/pipe[20838]: 6C5FB276291: to=<us...@mydomain.de>, relay=autoresponder, delay=2, delays=0.01/0/0/2, dsn=2.0.0, status=sent (delivered via autoresponder service)
Dec 30 14:36:21 mailserver1 postfix/qmgr[20818]: 6C5FB276291: removed
Dec 30 14:36:21 mailserver1 postfix/cleanup[20837]: 730DA2762BD: message-id=<54a2aa4e.6020...@web.de> Dec 30 14:36:21 mailserver1 postfix/qmgr[20818]: 730DA2762BD: from=<txba...@web.de>, size=1507, nrcpt=1 (queue active) Dec 30 14:36:21 mailserver1 postfix/virtual[20850]: 730DA2762BD: to=<us...@mydomain.de>, relay=virtual, delay=0.02, delays=0/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Dec 30 14:36:21 mailserver1 postfix/qmgr[20818]: 730DA2762BD: removed


Hier erscheint zweimal "delivered via autoresponder service", also für jede Empfängeradresse, aber nur einmal "delivered to maildir" für nur eine Empfängeradresse. Durch eine Kontrollausgabe im Autoresponder habe ich gesehen, dass es tatsächlich nur einmal aufgerufen wird.

Wenn ich den Autoresonder wieder rausnehme, bekommen alle Empfängeradressen die eMail zugestellt.

Dec 30 13:45:34 mailserver1 postfix/qmgr[19192]: 7F6BC276291: from=<txba...@web.de>, size=100131, nrcpt=2 (queue active) Dec 30 13:45:34 mailserver1 amavis[16543]: (16543-09) Passed CLEAN, [212.227.15.4] [xx.xx.xx.xx] <txba...@web.de> -> <us...@mydomain.de>,<us...@mydomain.de>, Message-ID: <54a29e68.30...@web.de>, mail_id: enMVd7SzLQVj, Hits: -1.9, size: 99718, queued_as: 7F6BC276291, 418 ms Dec 30 13:45:34 mailserver1 postfix/smtpd[19220]: proxy-accept: END-OF-MESSAGE: 250 2.0.0 Ok, id=16543-09, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 7F6BC276291; from=<thomasxba...@web.de> to=<us...@mydomain.de> proto=ESMTP helo=<mout.web.de> Dec 30 13:45:34 mailserver1 postfix/virtual[19230]: 7F6BC276291: to=<us...@mydomain.de>, relay=virtual, delay=0.03, delays=0.02/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to maildir) Dec 30 13:45:34 mailserver1 postfix/virtual[19230]: 7F6BC276291: to=<us...@mydomain.de>, relay=virtual, delay=0.03, delays=0.02/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to maildir)
Dec 30 13:45:34 mailserver1 postfix/qmgr[19192]: 7F6BC276291: removed

Kann mir vielleicht jemand weiterhelfen, warum eine eMail mit dem Content-Filter nicht jedem angegebenen Empfänger zugestellt wird?

Gruß, Thomas Barth

Antwort per Email an