Re: [EXIM] Exim wishlist: tar-baby / RBL / SPAM

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Kuyper Hoffman, Tom
CC: exim-users, evan
Subject: Re: [EXIM] Exim wishlist: tar-baby / RBL / SPAM
On Tue, 2 Dec 1997, Kuyper Hoffman wrote:

> Philip, you may recall that we discussed something similar almost
> exactly a year ago!


Indeed, and the idea still languishes somewhere on my enormous Wish
List...

On Mon, 1 Dec 1997, Tom wrote:

> Yes, a dbm based system with two databases, "from", and "to". Upon
> receiving a valid SMTP "rcpt to", a counter in the "from" database is
> incremented for the sender address, and a counter in the "to" database is
> incremented for the recipient address.
>
> This means the "from" database will contain the number different
> addresses a sender has sent to, and the "to" database will contain the
> number of different messages a recipient has received.
>
> If the counters in either database exceed a certain limit, return a
> temporary error. Use a nice high limit that only a DoS would hit (5000
> should be fine for most sites).
>
> Simply delete the "from" and "to" databases once a day to reset the
> counters.


Too error prone. I've noted this idea, but it should be more automatic,
for example, by keeping a rate of arrival rather than just a count.

On Tue, 2 Dec 1997, Kuyper Hoffman wrote:

> When recipients_max_reject is set (and recipients_max is set to some
> small number) what would the typical action of the remote mailer be?
> Would it _immediately_ reconnect to deliver the next batch or would
> it (if it were say, Exim) back off for a period of time first, as if
> it had had a "connection refused"?


If recipients_max is exceeded, Exim gives an error response to any
subsequent RCPT TO commands. If recipients_max_reject is set, this is a
permanent 550 error; otherwise it is a temporary 421 error. In addition,
if recipients_max_reject is set and there were too many recipients, Exim
gives a 554 error to the eventual DATA command - that is, it attempts to
reject the entire message. So setting recipients_max_reject means "do
your best to refuse to have anything to do with a message with too many
recipients". If you just want to limit the number coming in at one go,
then you shouldn't set it.

I think all MTAs treat a 550 response to RCPT TO as a hard failure, and
will not retry that address again. If the far end is Exim, it will treat
a 554 response to DATA as a hard error, and fail all the remaining
addresses. Other MTAs may not do this, and might try again.

If Exim just received temporary errors for some recipients, it will try
to send them again the next time the message is noticed, which will be
at the next queue run.

> I think we're all keen to hear what poor Philip has to say about all
> these alleged new features? :-)


Here are my pearls of wisdom... and if anybody feels a burning desire to
make me less poor... :-)))

On Mon, 1 Dec 1997, Tom wrote:

> I think Exim should implement a call-out API so this kind of stuff can
> be left out of the core system. Kinda like Exim calls smtp_mail_from()
> after it receives a "mail from" command, and the user can supply a
> smtp_mail_from() written in users favourite language. See the INN callout
> API system for perl and tcl, for an example.


I'm probably going to do some major dismembering once 1.80 has settled,
in order to make it easier to add new lookup types. Adding a call-out
API of this kind is a similar sort of surgery which might usefully be
done at the same time. But that kind of major upheaval is best done when
the current release is well bedded-down so that there is less chance I
have to rush out something in order to fix bugs.

Philip

-- 
Philip Hazel                   University Computing Service,
ph10@???             New Museums Site, Cambridge CB2 3QG,
P.Hazel@???          England.  Phone: +44 1223 334714



--
*** Exim information can be found at http://www.exim.org/ ***