Hi,
I'm trying to pass certain messages to a script for processing, but
prevent any script errors being reported to the original sender. (Normal
kind of thing).
I have errors_to set on the relevant router, and have the script producing
some output to simulate an error case. This works perfectly in most cases;
the script runs, the delivery completes and an error message is sent to
the address listed in errors_to containing the usual blurb, that is:
"
... could not be delivered to one or more of its recipients. The following
address(es) failed:
pipe to |/path/to/script
generated by example@???
The following text was generated during the delivery attempt:
------ pipe to |/path/to/script
generated by example@??? ------
test output
"
All good so far. However, if the message to be delivered has a null
sender, it seems that the errors_to option is ignored. Instead, the
message is frozen on the queue (with a log message containing something
like "T=address_pipe: return message generated").
It's not a tremendous problem, but it left me a bit mystified for a while
until I worked out what was going on. I've trawled the documentation but
couldn't find any references to this situation. Is it:
a) Intended behaviour? If so, why? (prevent any possibility of mail loops
perhaps?). Can it be over-ridden? In any case, perhaps the documentation
could contain a note about it, if it's not there already? (and if it is,
perhaps have some additional cross-references, because I've managed to
overlook it)
b) Unintended behaviour due to some unexpected interaction?
c) Me being silly?
Thanks,
Tim