> From: Nils Altenbach

> I want exim4 to run a shell script every time the transport 
> local_mysql_delivery delivers a mail, with the username of the user 
> receiving the mail (local part of the email address) as argument for 
> that script.
> 
> I've tried using the transport_filter, but it doesn't work.
> 
> This is the transport in question:
> 
> 
> local_mysql_delivery:
>    driver        = appendfile
> #  file         = /var/mail/$local_part
> #  directory    = /home/$local_part/.maildir
>    directory     = /var/mail/${domain}/${local_part}/
>    maildir_format
>    delivery_date_add
>    envelope_to_add
>    return_path_add
>    user          = mail
>    group         = mail
>    mode          = 0660
> 
>    # running the delivery alert script
> 
> #  transport_filter = /bin/sh -c /usr/local/bin/maildelivered.sh 
> '${quote_mysql:$local_part}'

transport_filter = /bin/sh -c '/usr/local/bin/maildelivered.sh 
${quote_mysql:$local_part}'

But a transport filter must copy its standard input to its standard output
(optionally with modifications). Instead I use "unseen" in the router and
an additional router with a pipe transport.

> The transport filter is commented out because if I use it, mails aren't 
> delivered, and /var/log/exim4/mainlog gives me something like this:
> 
> 2010-12-03 16:51:25 1POXtY-00035P-2l == [email protected] R=mysql_user 
> T=local_mysql_delivery defer (-24): transport filter process failed 
> (127) while writing to tmp/1291391485.H362240P11945.fooserver.net: 
> unable to execute command
> 
> What am I doing wrong? Should I use run instead of transport_filter, and 
> how exactly am I supposed to run a shell script from a transport? I 
> don't need any feedback from that shell script (other than it did run 
> without errors), I just need exim to run that script every time a MySQL 
> user receives a mail.

-- 
## List details at http://lists.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to