[Exim] How to deliver to two transports?

Top Page
Delete this message
Reply to this message
Author: Erik Enge
Date:  
To: exim-users
Subject: [Exim] How to deliver to two transports?
Hi (again) all.

So I'm starting to understand how Exim works now, I think. :)

I've got Cyrus, Amavis-ng and Exim (4.04) up and running and all parts
work as they should (at least it seems so). However, when I put them
all together things start to get shaky.

My first router is this:

amavis_director:
condition = "${if eq {$received_protocol}{scanned-ok} {0}{1}}"
driver = accept
transport = amavis

Because I want the spam/virus checker to run first, this is good.

The amavis transport is:

amavis:
driver = pipe
command = "/usr/local/bin/amavis -f <${sender_address}> -d ${pipe_addresses}"
message_prefix = ""
message_suffix = ""
check_string =
escape_string =
return_output = true
return_path_add = false
user = amavis
group = amavis
headers_add = "X-Virus-Scanned: by AMaViS-ng"
path = "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
current_directory = "/var/amavis"

And I believe this is good, too. Now, my only problem is that after the
amavis transport has run, the mail doesn't really get delivered (and
according to my setup, I guess it shouldn't - but I want it to. :).

My local_delivery transport says:

local_delivery:
        driver = pipe
        command = "/usr/libexec/cyrus/deliver ${local_part}"
        return_path_add
        return_output
        message_prefix = ""
        user = cyrus


Is there any way I can have the local_deliver run after amavis?

Thanks,

Erik.