Re: [Exim] Retry config: local-part lookup for remote domain…

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Philip Hazel
Date:  
À: Bernard Stern
CC: exim-users
Sujet: Re: [Exim] Retry config: local-part lookup for remote domains?
On Wed, 16 Feb 2000, Bernard Stern wrote:

> Paragraph 3.1 of the exim spec states that "The first form (ie the
> local-part@domain form) must be used only with domains."


Wow. It took a bit of further reading to guess to what you were
referring there.

> I understand this, but nonetheless I'd like to use this first form
> also for remote domains, in a special case: I'd like to get
> quickly rid of all messages with the local part "news".


<snip>

> The feature "local part
> lookup for remote domain" regarding retry configuration would
> do just that.


The way Exim works is to remember "there's a problem with this domain"
at the time it is delivering. Then at the end of all deliveries, it goes
and sets up the retry times for all problems. If you wanted to change it
to "remember there's a problem with this user@domain" the transport
would have to have a list of addresses to do this for; I don't think it
should do it for all addresses because 99.9% of the time you don't need
to fill up your retry databases like this.

> Also, when doing exim -brt news@remote-domain,
> the rule gets "correctly" interpreted:
>
> ^news@([^@]+)$         refused     F,2h,15m; G,6h,2h,1.5
> ^news@([^@]+)$         *           F,2h,15m; G,6h,2h,1.5; F,12h,1h

>
> exim@chx400 /home/exim/cfg> exim -brt news@???
> Retry rule: ^news@([^@]+)$ F,2h,15m; G,6h,2h,1.5; F,12h,1h;


No, that's just doing textual checking. It won't work for real, because
it will never look for that "key" if remote.com is a remote domain.

> How should the spec be interpreted (ie "must not")? Is this
> just impossible by the code, or is it a recommendation, and
> in this latter case, what am I doing wrong? Thank you for any
> hint.


With the current code, it won't work.

Hmm. I wonder if you can do some horrible hack with $message_age. A
router along these lines:

early_bounce:
driver = domainlist
domains = the.domains.of.interest
local_parts = news
condition = ${if > {$message_age}{3600}{yes}{no}}
route_list = * localhost byname
self = local

would send the address to the directors, where you could have

early_bounce:
driver = smartuser
domains = the.domains.of.interest
local_parts = news
new_address = :fail: This address has timed out.

or you could route it to a local transport that writes to /dev/null.



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