Re: [Exim] Freezing messages to failed recipients

Kezdőlap
Üzenet törlése
Válasz az üzenetre
Szerző: Philip Hazel
Dátum:  
Címzett: Batchelor, Jonathan
CC: 'exim-users@exim.org'
Tárgy: Re: [Exim] Freezing messages to failed recipients
On Wed, 31 Oct 2001, Batchelor, Jonathan wrote:

> 1) Is it possible for exim to recognise a failed page (I think that we can
> set up a temp_error to signify a failed page and modify our mail.page
> program to return this error code for a barred pager) and then either freeze
> the failed message and all further messages to that recipient OR place them
> all on a separate queue.


Exim can recognize temporary failures from pipes. It will then leave the
message on the queue and try it again later. However, you can define
what "later" means by setting an appropriate retry rule for the address
(assuming pagers have some recognizable address format). So it could be
quite long afterwards. Any other messages for the same address will also
be held and not delivered. ... Hmm, no that's not quite right. They
will be tried once because it's a local delivery. *Then* they go onto
the retry schedule. Not quite what you want, but maybe tolerable?

Disadvantage: the messages are clogging up Exim's queue. This is akin
the the problem of a server waiting for a dial-in client. You could
solve it in a similar way. By checking $message_age you can detect
messages that have been on the queue for a while and handle them
differently, e.g. deliver them into files in BSMTP format. Indeed, an
elegant config is in the samples (I think) which puts messages into
files either if they haven't been delivered for a while, or if the file
already exists (implying a previous message failed). Then when you want
to send the messages, you just rename the file and pump the messages
back into Exim using -bS.

> The frozen messages (or second queue) would then
> either be automatically released after about a specified amount of time, or
> could be manually released once the pager has been unbarred (by someone
> manually speaking to Vodafone).


If you leave them on Exim's queue (it has only one queue), they will be
retried after a time specified by the retry rule. Or they can be
manually prodded.

> 2) Is it possible to pass some info back from the mail.page program to exim,
> so that the failed page details may be logged by exim?


Have a look at the log_output and log_failed_output options of the pipe
transport.

> The other potential feature which would be a nice option would be to only
> allow internal users/hosts to send mail to the paging system. Mail from
> external address should be rewritten and sent to our normal mail server. I'm
> sure this is probably the easiest to solve! :-)


Yup. Suitable conditions on the director should cope with this.

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