[Exim] How do I pass undeliverable mail through a script?

Top Page
Delete this message
Reply to this message
Author: Joe Emenaker
Date:  
To: exim-users
Subject: [Exim] How do I pass undeliverable mail through a script?
I'm trying to switch from smail to exim.

On smail, I've got it set up so that, if the user or alias isn't found on
the system, the whole message is given to a script via the smartuser
director, like so:

  smartuser:
     driver=smartuser;
     new_user="|/usr/bin/someprogramiwrote"


(incidentally, smail doesn't pass the local addresses that weren't found to
the the script, so my script has to parse the header and examine the "To:"
field. Exim claims to actually pass these addresses to the script, which has
me very eager to start using it)

However, Exim doesn't like this. When I try to send a message to a bogus
user at the machine, the paniclog reads:

   1999-07-27 23:05:54 Exim configuration error for smartuser director:
    new address has no domain


Does the "new_user" not support pipes in Exim? If not, how can I do what I'm
after? In the faq and the mailing list archives, I've seen some suggestions
that sound like they might do what I'm asking for, but they entail setting
up router entries (which I don't see the reason for because the messages are
staying on this machine... semanically, I should only need to involve a
director) and, generally, they look like they solve more complicated
problems than what I'm trying to do.

(Oh, in case you're wondering, the script that I'm trying to run does
regexp-matching, domain-based aliases. So, I can have ".*help.*@???"
forward to "actualuser1", stuff like that.)

Any ideas?

- Joe
--------------
"When I made a shadow on my window shade,
They called the police and testified.
But they're like the people chained up in the cave,
In the alegory of the people in the cave by the greek guy"