[Exim] Exim 4 Planning - some comments.

Top Page
Delete this message
Reply to this message
Author: John Sloan
Date:  
To: exim-users
Old-Topics: [Exim-Announce] Planning for Exim 4
Subject: [Exim] Exim 4 Planning - some comments.
>[...] instead of quoting the domain. While routing an address, tests of
these indirect domain lists will be cached when they are first done, so
multiple tests of the same list will be efficient. Up to 32 `private'
domain lists can be defined.


I would suggest making this a compile time limit. I can envisage
situations when more than 32 such domain definitions might be useful. For
instance running a mail relay for multiple customers - a separate list of
domains for each customer might make the domain management more tractable
(provided that you can use +local_domain_list in a file).


>The accept_recipient option contains a list of items which are

alternative conditions for accepting the RCPT command. However, we need to
have an `and' facility as well as an `or' facility, and the ability to
determine the priorities of `and' and `or'. I propose to use the words AND
and OR, and parentheses. This means that the syntax of this list is a bit
different to other lists. Colons might still appear within the indivitual
condition items. For example, a list of hosts that are allowed to relay
might be specified.


Hmm. I'm uncomfortable with this proposed syntax. An alternative might
be to go with an ACL type format, such as that used by some routers and
programs such as squid (my primary source for this idea). Multiple lines
which terminate on the first match. Such a format might look like:

accept_recipient accept (address = +local_domains) verify sender_verify
accept_recipient accept (address = +relay_domains) sender_verify
accept_recipient deny all

Or more cleanly:

acl localdomains address = +local_domains
acl relaydomains address = +relay_domains
acl all address = *

accept_recipient accept localdomains verify sender_verify
accept_recipient accept relaydomains sender_verify
accept_recipient deny all

Where there is an implicit and between elements of the same line and an
implicit or (by dint of using first match) between the lines. This makes
the precedence a bit more explicit also.

All the proposed keywords could become keywords used to define valid acls,
and these acls could potentially be used elsewhere as well.

Just my 2p.

John