On Wed, 10 Oct 2001, Phil Chambers wrote:
> I appreciate that there will be the local_scan() facility which will be invoked
> before acknowledgement of the SMTP DATA phase, but is there any chance of the
> system filter being invoked at the same stage?
No. Certainly not in the first release. And possibly never. Reasons:
(1) It's expensive, especially if you specify a user - that requires a
fork and another process process.
(2) Many of the things you can do in a filter - save, pipe, mail, for
example - are not things that can be done at message reception
time.
> I can see the need for local_scan() if a full-blown virus-scanning engine is to
> be integrated, but for the sort of scanning which I now do with the system filter
> I don't want to have to re-write it in C and then re-compile and re-make Exim
> every time I make a small addition.
I hope that somebody will write a suitably flexible C function that
operated on configurable patterns or other configuration. Or, if you
don't mind the expense, the C can call Perl or whatever.
On Wed, 10 Oct 2001, Matthew Byng-Maddick wrote:
> On Wed, Oct 10, 2001 at 02:47:36PM +0200, Sheldon Hearn wrote:
> > "At the SMTP stage" is broad. When exactly do you want the system
> > filter applied?
>
> I get the feeling that what is meant is to be able to affect the replies to
> various commands within the SMTP dialogue, this would be extremely useful
> functionality IMO. MAIL FROM:<foo@bar> goes and does a check to see if
> <foo@bar> is deliverable, RCPT TO:<baz@qux> checks if it is deliverable in
> the standard way, but also checks if <baz@qux> has set any rules that
> disallow <foo@bar>. This would be better than applying all the checks after
> the final `.', which I believe is where Exim4 applies the callback routines.
No, you are incorrect. The main ACL checks happen at RCPT time. That is
where you can do things like "accept for postmaster even if sender
doesn't verify, but for any other recipient, require the sender to
verify".
The reason for having checks at "." time (both the ACL and local_scan())
is that that is the only place you can run checks on the contents of the
message before finally accepting or rejecting it.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.