Re: [Exim] Proposal for Exim 4

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Philip Hazel
Ημερομηνία:  
Προς: Karl Schmidt
Υ/ο: exim-users
Αντικείμενο: Re: [Exim] Proposal for Exim 4
On Thu, 2 Aug 2001, Karl Schmidt wrote:

> You asked for suggestions for Exim 4 – hope this makes the list


<snipped suggestion about the logic for spam blocks>

This is all very interesting, but I don't think it is right to screw a
lot of very specific spam-checking functions into Exim. Partly because
an MTA's job is to move messages, not inspect them, and partly because
people will always be coming up with new ideas for what to do, and want
to get on with them faster than they could be integrated into the MTA.

What I do agree with is that there should be a relatively easy way to
connect Exim to "add-on" logic that can do this kind of checking. This
was requested for Exim 4, and I have already done some implementation.
It works like this:

In Exim 4, right at the end of receiving a message, but before sending
the final acknowledgment, a specific C function is called. The default
function supplied with Exim just returns an "OK" value, and the
message is accepted. However, a site can supply its own function in
the Local directory. The API to this function is well-defined. It can
see the headers and read the body of the message. It has access to
some of Exim's utility functions, and it can use Exim's string
expander. It can accept or reject the message. It can mess around with
the message's recipients (if accepting the message). It can give a
specific error message if rejecting a message.

Defining this as a C function means that all sorts of other things can
be called if people want. It also means that high-volume sites can
write their local code to be more efficient than, say, calling Perl.
My hope is that people might write one or more general functions and
publish them for others to use.

-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.