[Exim] Headers and Routing

Top Page
Delete this message
Reply to this message
Author: Bradley Cloete
Date:  
To: exim-users
Subject: [Exim] Headers and Routing
Hello,

I'm wanting to do something on our servers and was hoping that someone could
maybe point me in the right direction... I have'nt been able to figure it
out from the docs. This is going to be a little bit of a long explanation so
please bear with me...

We have some smtp servers(Exim 3.36) on our front end and some on our
backend running Exim and Trend Viruswall. Thebackend is setup with Trend
listening on port 25 and then forwarding on to Exim listening on a different
port.

Now when mail comes in it comes in via our frontend and our frontend decides
if its local or not and either spools it remotely or to the backend. This
works fine except we also provide a mail spooling facility for our clients.

If the client is offline we get the mail and deliver it into a directory(via
the viruswall) and when the client sends an ETRN it gets spooled out via the
frontend servers... now lets say a client has a lot of mail in our queue
waiting to be delivered, and lets say for some reason he downloads 300 of
his 1500 messages then for some reason disconnects... you guessed it! The
rest get redelivered via the viruswall! now this is obviously not the most
efficient way to do it...

What I want to do is mark any mail delivered through the viruswall/backend
servers with a header of sorts and then check for the existence of the
header on the frontend servers.
So if a mail has already been scanned then it will not be scanned again.

Something like ...

if first_delivery then
    transport  = backend
else
    transport = straight_to_disk


or with a filter of some sorts maybe... but I'm not sure if its possible...

if $special_header = "X-scanned" then
    deliver straight to disk
else
    deliver to viruswall


Is this possible with 3.36?
if not is it possible with 4.x?

I havent been able to get headers_add to actually add anything to the
headers of these messages either, so I dont know if I'm overlooking
something or what...

I just tried to do a basic headers_add = "X-Scanned: Yes"

How do I make it work! How do I test it?

Any help appreciated,
Thanks
Bradley