Re: [Exim] Transport Execution Order

トップ ページ
このメッセージを削除
このメッセージに返信
著者: Philip Hazel
日付:  
To: John R. Shearer
CC: exim-users
題目: Re: [Exim] Transport Execution Order
On Fri, 16 Apr 2004, John R. Shearer wrote:

> I believe that I am having a problem with the order which transports are
> executed.


I'm not surprised, if you are trying to rely on it. The order in which
transports are executed is not defined.

> I am trying to use Exim to replace a sendmail/procmail front-end to a
> spam filtering system. Odd as it may be, the spam filter needs three
> input files: one containing the message, one containing just headers and
> one containing just the body (procmail currently generates these three
> files and initiates the spam filtering application). I wrote three
> routers & transports to create the files and a fourth to execute the
> spam filtering application, passing the file specifications as arguments.


I would advise writing one script to which you pipe the message from
Exim. Let that script create the files and execute the application. But
if procmail can do this already, why not just pipe the message to
procmail?

> I have tried placing the router which initiates the application after
> the routers that generate the files, but the routers' transports appear
> to always be run in reverse order of the router definitions.


All routers run before any transports. Routers take decisions;
transports carry them out. But not in any defined order.

> According to
> <http://www.exim.org/exim-html-4.30/doc/html/spec_3.html#SECT3.12>...
>
> "Each local delivery runs in a separate process under
> a non-privileged uid, and they are run in sequence. "
>
> Are not my transports considered to be "local deliveries"?


Yes, they are. I should reword that sloppy sentence. For "in sequence",
please read "one at a time".

I hope this helps,
Philip

--
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book:    http://www.uit.co.uk/exim-book