Re: [Exim] Defining my own director

Top Page
Delete this message
Reply to this message
Author: Greg Ward
Date:  
To: Oliver Fischer
CC: 'exim-users@exim.org'
Subject: Re: [Exim] Defining my own director
On 29 October 2001, Oliver Fischer said:
> If I define my own director like this:
>
> imap_delivery:
>   driver                = pipe
>   command               = "/usr/local/cyrus/bin/deliver ${localpart}"
>   return_path_add
>   return_output


That defines a *transport*, not a *director*. Where is this snippet in
your exim.conf file? If it's between the first and second occurence of
"end", it's a transport.

Here's one way to think about it: "pipe" is a class of transports, and
-- for your configuration -- "imap_delivery" is one instance of that
class. Every Exim installation can define as many "pipe" transports as
the admin wishes; only you have this exact "imap_delivery" transport.
(Well, in theory. It looks pretty mundane, so you're probably not the
*only* one.)

Generally, whenever you want to add some new functionality to your Exim
server, you have to define *two* new things: a transport (to do the
actual work) and a director or router (to step in and say, "I know how
to handle this message"). (Whether you define a director or router
depends on whether the address in question is local; that distinction is
going away in Exim 4.)

So, you also need to define a director that will probably look something
like this:
  imap_director:
    driver = localuser
    transport = imap_delivery


(This will make any message for a localpart that corresponds to a user
ID in /etc/passwd [or local equivalent] be handled by your imap_delivery
transport, which in turn pipes them to /usr/local/cyrus/bin/deliver.
Read about the "smartuser" director if you don't have a 1:1
correspondence between /etc/passwd users and IMAP users.)

Hope this helps --

        Greg
-- 
Greg Ward - software developer                gward@???
MEMS Exchange                            http://www.mems-exchange.org