On Mon, 23 Oct 2006, John Robinson wrote:

> On 23/10/2006 17:53, Patrick von der Hagen wrote:
> [...]
> > Imagine you forward messages to a server that applies greylisting. Quite
> > a normal setup here. You get a message from A at 0:00 and have to
> > forward it to recipient Z on the server applying greylisting. A
> > temporary error is received and the greylisting-daemon saves
> > (A,Z,YOUR-IP) to its database.
> > Exim sets a retry-time, e.g. 15 minutes for recipient Z.
> > 
> > At 0:14 a new mail from a new sender arrives, which is to be forwarded
> > to Z. You try it immediately, the greylisting-daemon saves (B,Z,YOUR-IP)
> > and your exim updates its retry-database, to have a new retry at 0:29
> 
> Ah. Yes, that would be problematical. Again, I'm vague on all this, but 
> I think that that shouldn't happen; the retry database should continue 
> to show 0:15. If the retry system worked as you describe, I suspect it 
> wouldn't just be greylisting which caused problems, but probably every 
> other error too.

I'm afraid it will happen. Exim's "retry key" for a 4xx recipient error 
is just the recipient address; it does not involve the sender. When the
same recipient address fails for the second time, the retry time for 
that recipient will indeed be updated. (When I implemented this, I never 
considered that a 4xx error could be dependent on the sender.)

The "obvious" solution to this is to include the sender address in the 
retry key. However, this would of course increase the number of retries 
in the case of a genuine (non-greylisting) 4xx response when there are
many messages from different senders for the same recipient. A queue run 
would then try one message from each sender instead of just one message.

Is the gain worth the pain? If so, should it be optional? If so, which 
should be the default?

-- 
Philip Hazel            University of Cambridge Computing Service
Get the Exim 4 book:    http://www.uit.co.uk/exim-book

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/

Reply via email to