[exim] Idea: a retry which is more expansive, uses the set …

Top Page
Delete this message
Reply to this message
Author: Ian Kelling
Date:  
To: exim-users
Subject: [exim] Idea: a retry which is more expansive, uses the set of mx hosts
Sorry for the long email here. Let me know if anything isn't clear.

In the spec, 32.4 sending to a.b.c.example is retried to another mx
host. I've had yahoo return a temporary error which says roughly "don't
email any of our mx hosts for a while". Yahoo has like 16 mx hosts, and
like 100 domains which go to those hosts. I can't encode that into
retry rules. I could setup a cronjob which queried all those mx hosts
and put them into the exim config and that list would become invalid for
some period between the cronjobs when they added a new mx host. I ended
up basically making an ahoc queue runner which would do its own retry
calculation for yahoo, and made any failure to yahoo freeze a message so
my own queue runner could handle it.

That taught me: don't run queue runners in a short interfal, or else it
will cause problems with retrying too much. Now, I've come into a
situation where I want to run queue runners fast (like every minute) in
order to send a lot of mail fast (but slower than I receive it), but I
know I can't do that with queue runners without retrying too often. So,
I'm setting up 2 exim spools, and 2 daemons, where 1 does fast queue
runners that send to a second exim daemon which tries an immediately
delivery but has a different spool, which does the default 30 minute
queue runners. But that adds a fair bit of unnecessary overhead if exim
could just do this with 1 spool, and retry rules that did what I want.
So, I'm imagining a new feature that would upon a delivery failure,
record the recipient domain, and it's mx hosts, and then for any future
delivery which is to that domain or if that domains mx list has any of
previously failed hosts, then defer. Am I missing something?

--
Ian Kelling | Senior Systems Administrator, Free Software Foundation
GPG Key: B125 F60B 7B28 7FF6 A2B7 DF8F 170A F0E2 9542 95DF
https://fsf.org | https://gnu.org