[Exim] local_scan temporary rejections on locally submitted …

Top Page
Delete this message
Reply to this message
Author: Ollie Cook
Date:  
To: exim-users
Subject: [Exim] local_scan temporary rejections on locally submitted messages
Hi,

I am writing a content filtering module using local_scan and Exim 4.14 which
needs to reinject multirecipient mails into N single-recipient messages so that
each message can have that single recipient's preferences applied to the
contents.

I am using the following router and transport to achieve this:

  split_recipient:
    driver    = accept
    condition = ${if >{$recipients_count}{1}{yes}{no}}
    transport = split_recipients


  split_recipients:
    driver    = pipe
    command   = "/usr/exim/bin/exim -f<${sender_address}> \
                 -oMr ${message_id} ${pipe_addresses}"
    batch_max = 1


In local_scan, multirecipient mails are always LOCAL_SCAN_ACCEPTed and single
recipient mails are scanned and the message either accepted, rejected, or
temporarily rejected.

In the case of a multirecipient mail, which is initially accepted, and then
subsequently temporarily rejected, my configuration seems to cause the
reinjected message to bounce.

19Falf-0007ZM-Ag is the original message as received over ESMTP and
19Falf-0007ZP-BM is the failed reinjection by the split_recipients transport:

2003-05-13 15:28:35 19Falf-0007ZM-Ag Not content scanning multirecipient message: 2
2003-05-13 15:28:35 19Falf-0007ZM-Ag <= <> H=chaos.uk.clara.net [195.8.69.185] P=esmtp S=1925 id=E19Fale-0007ZC-Ue@???
2003-05-13 15:28:35 19Falf-0007ZM-Ag ** rcpt1@??? R=split_recipient T=split_recipients: Child process of split_recipients transport returned 1 from command: /usr/exim/bin/exim
2003-05-13 15:28:37 19Falf-0007ZM-Ag => rcpt2 <rcpt2@???> R=split_recipient T=split_recipients
2003-05-13 15:28:37 19Falf-0007ZM-Ag Completed

2003-05-13 15:28:35 19Falf-0007ZP-BM Module 'uce' failed: ucescan module unable to connect to remote host: Connection refused
2003-05-13 15:28:35 19Falf-0007ZP-BM temporarily rejected by local_scan(): temporary local problem: please resend later

I would expect in this case, 19Falf-0007ZM-Ag to remain on the queue, having
listed rcpt2 as "delivered" and rcpt1 as not yet delivered e.g.:

 2m  1K  19Falf-0007ZM-Ag <>
        D rcpt1@???
          rcpt2@???


However this is not the case and the message is dropped. If there was a valid
sender, he/she would receive a bounce message.

I have a feeling my assumptions of how locally submitted messages handle
temporary rejections is wrong; is this the case?

Thanks,

Ollie

--
Oliver Cook    Systems Administrator, Claranet UK
ollie@???                  020 7903 3065