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