On Wed, 13 Jun 2001, Philip Hazel wrote:
> I have re-instated the planning document at
>
> ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/Exim4Plan.html
>
> I have revised it in the light of previous comments and what has already
> been implemented for Exim 4. It was done fairly hastily, so the
> information is brief, but I hope it is useful.
>
>
--
I quote a few sections of this below. It seems that if the TCP port, and
the IP address of the interface used to receive an SMTP message were
stored in some variables and made available for use in ACL expansions,
one could at least apply different policies in this manner.
(I posted to the list looking for ways of having exim listen to multiple
ports, with different accept policies on each)
[..]
Different kinds of input
Another suggestion that was made was to differentiate between different
kinds of message input, and possibly apply different rules to them. The
different input sources are:
SMTP from a remote host on address xxx port yyy.
Batch SMTP.
SMTP on standard input from another process.
Message on standard input.
The suggestion was that one might have `injectors' or `acceptors' that
applied to the different cases. Each one could specify a different ACL
for accepting recipients (not sure about the last one), and could also
specify other parameters concerning incoming messages, such as whether
unqualified addresses are acceptable, and rewriting rules.
My feeling on this is that it is getting too complicated to graft into
the existing design, so I do not propose to take this further. There
seems little point in doing this checking for batch SMTP, so there is no
provision for it.
[...]
The daemon can listen on multiple interfaces, but there is only one port
number. This can be generalized. Adding a port to an IP address using a
dot as a separator is something that works with both IPv4 and IPv6
addresses, and it also avoids problems with colon as a list separator:
local_interfaces = 1.2.3.4.25 : 5.6.7.8.487 : ::::1.42
Alternatively, maybe the only syntax should be the one involving square
brackets, discussed above. This would be best used with an alternate
list separator:
local_interfaces = <; [1.2.3.4]:25 ; [5.6.7.8]:487 ; [::1]:42
-oX allows the incoming port to be specified on the command line, but
there is no means of specifying the incoming interface(s). For
consistency, this should be fixed, and -oX could be used for both types
of data.