[Dovecot] Custom 'quota exceeded' message + Sieve script from database
Przemyslaw Wegrzyn
czajnik at czajsoft.pl
Sun Jan 6 20:11:46 EET 2008
Hi!
I'm quite new to Dovecot. helping my friend to migrate from Courier-IMAP
to something more efficient, we are evaluating Dovecot at the moment.
I had to prepare 2 small patches for Dovecot to suit our needs, and I've
decided to post it here. I'm not fully familiar with Dovecot
architecture yet, I'd appreciate if someone could look if these changes
make sense (i.e. doesn't break anything). And of course, maybe someone
is interested as well.
1. Customized "quota exceeded" message.
http://czajnick.sitenet.pl/dovecot/dovecot_1.0.9_quota_exceeded_message.diff
- quick hack to let me define custom message instead of typical "Quota
exceeded", simply by using plugins { quota_exceeded_message = ... }.
Browsing this mailing list I've seen some posts about such feature being
implemented in Dovecot. Is it done in a similar way? Which stable
version is the first to include this functionality?
2. Sieve filter modification
http://czajnick.sitenet.pl/dovecot/dovecot_sieve_1.0.2_envscript_patch.diff
In our systems we currently use a modified maildrop MDA that picks the
filter script from the database instead of the file. This has proven
useful - end-user's administration panel doesn't need any special
permissions (or networking capabilities), as it doesn't need to access
the filesystem - it is reduced to a plain database web-app.
The patch above makes the delivery agent check for the sieve script
present in SIEVE_SCRIPT environment variable. If this is the case, env
var content is used instead of the script stored in a usual file pointed
to by SIEVE variable. This makes it trivial to pass the script from the
database using base dovecot functionality.
A minor drawback of such solution is that the script is re-compiled on
each delivery, but I don't think it takes much time to compile a few
lines of a script using (f)lex/bison-or-yacc parser. Yes, I've noticed
the sieve-manage patch, but I don't want the complexity of managing
sieve script over the socket connection (if my understanding of the
script is wrong, please correct me).
BR,
Przemyslaw
More information about the dovecot
mailing list