On 2009-12-21 at 13:44 +0100, Joan wrote:
> >
> > You need to check user's quota on routing stage, not transport.
> >
> It'd be much better, because I would allow me to mix overquota and
> no-overquota recipients.
> But the problem in my case is that I am using some hashing to
> distribute the users' mailboxes, dovecot can handle this easily
> because it supports some interesting stuff
> (http://wiki.dovecot.org/Variables)
Exim has built-in quota support, if you let it do the maildir delivery,
and the paths can be constructed using a wide selection of variables,
which certainly seem to cover the variables relevant to storage-time
selection in the list you provide (obviously pid of connection and that
it's IMAP won't be supported, but you won't be storing based on that).
Exim also has a nice selection of expansion operators to perform things
like hashing, substring selection, and more. See section 11.6
("Expansion operators") in the Spec.
The biggest issue here is likely to be an operational one, how do you
make sure your hashing in the Dovecot server remains in sync with the
hashing in the Exim server. And that's solvable with presubmit checks.
-Phil