[Postfixbuch-users] Eingehende Email soll PHP Script auslösen.

Klaus Tachtler klaus at tachtler.net
Mi Nov 5 07:52:01 CET 2014


Hallo Christian,

wenn ich einmal die weitere Zustellung an dovecot außer acht lasse,
überprüfe doch mal nachfolgende Dinge, evtl. ist da ja was dabei:

1. Wie erkennt Postfix, das er das Script für die e-Mail(s) x aufrufen soll?
    (Bei mir: transport)
2. Schau Dir die flags= mal an: http://www.postfix.org/pipe.8.html
3. Ist das PHP-Skript durch Postfix überhaupt ausführbar
    (RECHTE: -rwxr-x--- 1 root vmail .... ... ..  .... <Pfad/Script>)
4. master.cf -->
> maildrop  unix  -       n       n       -       -       pipe
>   flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}

DEINS > maildrop  unix  -       n       n       -       -       pipe
MEINS > maildrop  unix  -       n       n       -       1       pipe

Ist ggf. bei Verwendung von einigen flags= notwendig z.B. flag... "D"!

Viel Erfolg!

> Danke für den Link.
>
> Ich habe natürlich schon einiges gegoogelt und auch die diversen  
> vorschläge ausprobiert. Leider ohne Erfolg.
> Ich bringe Postfix einfach nicht dazu beim annehmen einer Email das  
> Script auszuführen.
>
> Hier mal mein master.cf File und ganz unten der Eintrag der mir das  
> Script aufrufen soll. Irgend was mache ich da noch falsch
>
> Christian
>
>
> #
> # Postfix master process configuration file.  For details on the format
> # of the file, see the master(5) manual page (command: "man 5 master").
> #
> # Do not forget to execute "postfix reload" after editing this file.
> #
> # ==========================================================================
> # service type  private unpriv  chroot  wakeup  maxproc command + args
> #               (yes)   (yes)   (yes)   (never) (100)
> # ==========================================================================
> localhost:asspsmtp       inet  n       -       -       -       -       smtpd
> localhost:asspssmtp      inet  n       -       -       -       -       smtpd
> submission               inet  n       -       -       -       -       smtpd
>   -o smtpd_tls_security_level=may
>   -o smtpd_sasl_auth_enable=yes
>   -o smtpd_client_restrictions=permit_sasl_authenticated,reject
> #  -o milter_macro_daemon_name=ORIGINATING
> #smtps     inet  n       -       -       -       -       smtpd
> #  -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
> #628       inet  n       -       -       -       -       qmqpd
> pickup    fifo  n       -       -       60      1       pickup
> cleanup   unix  n       -       -       -       0       cleanup
> qmgr      fifo  n       -       n       300     1       qmgr
> #qmgr     fifo  n       -       -       300     1       oqmgr
> tlsmgr    unix  -       -       -       1000?   1       tlsmgr
> rewrite   unix  -       -       -       -       -       trivial-rewrite
> bounce    unix  -       -       -       -       0       bounce
> defer     unix  -       -       -       -       0       bounce
> trace     unix  -       -       -       -       0       bounce
> verify    unix  -       -       -       -       1       verify
> flush     unix  n       -       -       1000?   0       flush
> proxymap  unix  -       -       n       -       -       proxymap
> proxywrite unix -       -       n       -       1       proxymap
> smtp      unix  -       -       -       -       -       smtp
> # When relaying mail as backup MX, disable fallback_relay to avoid MX loops
> relay     unix  -       -       -       -       -       smtp
>         -o smtp_fallback_relay=
> #       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
> showq     unix  n       -       -       -       -       showq
> error     unix  -       -       -       -       -       error
> retry     unix  -       -       -       -       -       error
> discard   unix  -       -       -       -       -       discard
> local     unix  -       n       n       -       -       local
> virtual   unix  -       n       n       -       -       virtual
> lmtp      unix  -       -       -       -       -       lmtp
> anvil     unix  -       -       -       -       1       anvil
> scache    unix  -       -       -       -       1       scache
> #
> # ====================================================================
> # Interfaces to non-Postfix software. Be sure to examine the manual
> # pages of the non-Postfix software to find out what options it wants.
> #
> # Many of the following services use the Postfix pipe(8) delivery
> # agent.  See the pipe(8) man page for information about ${recipient}
> # and other message envelope options.
> # ====================================================================
> #
> # maildrop. See the Postfix MAILDROP_README file for details.
> # Also specify in main.cf: maildrop_destination_recipient_limit=1
> #
> maildrop  unix  -       n       n       -       -       pipe
>   flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
> #
> # ====================================================================
> #
> # Recent Cyrus versions can use the existing "lmtp" master.cf entry.
> #
> # Specify in cyrus.conf:
> #   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
> #
> # Specify in main.cf one or more of the following:
> #  mailbox_transport = lmtp:inet:localhost
> #  virtual_transport = lmtp:inet:localhost
> #
> # ====================================================================
> #
> # Cyrus 2.1.5 (Amos Gouaux)
> # Also specify in main.cf: cyrus_destination_recipient_limit=1
> #
> #cyrus     unix  -       n       n       -       -       pipe
> #  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
> #
> # ====================================================================
> # Old example of delivery via Cyrus.
> #
> #old-cyrus unix  -       n       n       -       -       pipe
> #  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
> #
> # ====================================================================
> #
> # See the Postfix UUCP_README file for configuration details.
> #
> uucp      unix  -       n       n       -       -       pipe
>   flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail  
> ($recipient)
> #
> # Other external delivery methods.
> #
> ifmail    unix  -       n       n       -       -       pipe
>   flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
> bsmtp     unix  -       n       n       -       -       pipe
>   flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop  
> -f$sender $recipient
> scalemail-backend unix  -       n       n       -       2       pipe
>   flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store  
> ${nexthop} ${user} ${extension}
> mailman   unix  -       n       n       -       -       pipe
>   flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
>   ${nexthop} ${user}
>
> # Add this lines to be able to use dovecot as delivery agent
> # Dovecot LDA
> dovecot     unix        -       n       n       -       -       pipe
>   flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
> #nur ein test
> #dbmail-lmtp     unix    -       -       n       -       -       lmtp -v
>
> autoreply unix  -       n       n       -       -       pipe
>     flags=F  user=vmail  argv=/opt/autoreply/autoreply {$sender} {$recipient}
>
> #smtp      inet  n       -       -       -       -       smtpd
> #        -o content_filter=autoreply:dummy
>
>
>
>
>> Hallo Christian,
>>
>>> Hallo,
>>>
>>> ich muss mir in einer bestehenden Postfix installation einen
>>> Autoresponder basteln.
>>>
>>> Dazu möchte ich bei eintreffenden Email ein PHP Script ausführen und
>>> Absender und Empfänger übergeben.
>>>
>>> Dazu habe ich mir die master.cf angepasst/erweitert:
>>>
>>> autoreply unix  -       n       n       -       -       pipe
>>>    flags=F  user=vmail:vmail  argv=/opt/autoreply/autoreply
>>> {$sender}{$recipient}
>>>
>>> Per Komandozeile funktioniert mein Script schon mal, aber Postfix
>>> führt es nicht aus.
>>>
>>> Was mache ich falsch?
>>
>> Hast Du auch eine transport map, wo Du definierst bei welchen
>> e-Mail-Adressen
>> an das Skript weitergeitet werdeb soll?
>>
>> Ich habe mal einen ECHO-Mailer gebastelt, das ist ja nicht ganz
>> unähnlich, was
>> Du da vor hast:
>>
>> Schau mal hier:
>> http://www.dokuwiki.tachtler.net/doku.php?id=tachtler:postfix_echo-mailer-script_installieren#postfixkonfiguration
>>
>>
>>
>>> Besten Dank für Hilfe/Tipps
>>>
>>>
>>> Christian

Grüße
Klaus.


--

------------------------------------------
e-Mail  : klaus at tachtler.net
Homepage: http://www.tachtler.net
DokuWiki: http://www.dokuwiki.tachtler.net
------------------------------------------




Mehr Informationen über die Mailingliste Postfixbuch-users