Let me try...
On 20 Jan 2005 at 15:33, oliverj wrote about
"Re: [exim] rejecting messages for u":
| sorry if i didnt explain things properly.
You explained things properly. You apparently didn't understand the
reply.
| when you say :-
| "If you just return the string then Exim will do the existence
| check, and if it fails the router will not accept the address and
| address verification will fail"
|
| - that is what the perl subroutine does.
No it isn't. What it does is:
| it returns the string if the mail directory
| exists (ie it will return "/disk_01/data/mail/mydomain.net/fred"),
| and undef if it doesnt.
That's *not* the same. Tony is telling you to just return the path
name that should be checked *unconditionally*. *DO NOT* check for
existence in the perl script, you are preventing exim from doing its
job.
| i have to use this, otherwise exim has no way of knowing where the
| mail directory is for these virtual users.
Tony is telling you to return the pathname in all cases instead of
just some cases. More information for exim, not less.
| the problem i'm having is if that if the mail directory doesnt exist,
| then the message is still handled by the localuser router
Yes, that's your problem. Tony told you how to fix it.
| and remains on the mail queue,
| when what i really want it to do is be rejected by the localuser router and then get handled by the
| following unknown_user router which silently discards the message :-
That's because you are returning "undef" when the file does not
exist, so require_files does not do what you expect. RTFM about the
"require_files" option - it is treating "undef" as a user name, not a
path name, because it does not contain any '/' characters.
Look, if you are not willing to at least try the advice you are
given, why ask for advice?
- Fred