I've been using Cyrus with Exim for several years now; and am, in general quite happy with the combination. I'm currently upgrading a couple of systems to more current versions; and would really like to clean up a few of the kluges I've been using.
In particular, is there any clean method for an MTA like exim to determine whether a given local part is deliverable via the Cyrus lmtpd? (Or, more accurately, would it be deliverable if sieve were turned off and there are no problems with quotas, etc.) I am particularly interested in being able to do so with local parts which contain detail notation for submailboxes. (E.g., 'patl+cyrus.users')
My emphasis here is on 'clean'. I'm currently using two routers which convert the local part to a file path. (One to try the full detailed local part, one with only the user part.) It has two problems. One is that as implemented, it only works with a single partition. (Not an issue for me.) The other is that it requires far too much knowlege of Cyrus' implementation details.
I've seen the example that uses a lookup to directly access the mailboxes.db file. It also requires knowlege of Cyrus' implementation details; and it doesn't work with skiplists (no support in exim).
The easiest generic solution would probably be a utility that took a local part (including optional detail) as a command-line parameter and returned success if it is a deliverable address; and failure if not.
Possibly also an option to print to stdout the portion of the address that matched. If the whole address matched, it would be returned; if trailing from the detail weren't matched. (E.g., If I have the user.patl.cyrus, but not user.patl.cyrus.users; and pass the utility 'patl+cyrus.users'; it would return success and the string 'patl+cyrus'.)
It might also be useful to have an option that would make the printed output be the translated mailbox name. (E.g., Instead of 'patl+cyrus' it would return 'users.patl.cyrus' or 'users/patl/cyrus' depending on the heirarchy separator.)
Thanks, -Pat
pgp00000.pgp
Description: PGP signature