On Mon, 08 Aug 2011 16:35:53 -0300
Juan Bernhard wrote:
> Hi, Im using dovecot with maildir++ quota and I have this problem, maybe
> some of you already solve this and can helpme.
> I want to use some flat file to tell exim and dovecot the quota limit
> for each user, i tried to work with exim and maildirsize file, but exim
> just ignores the limits there.
> I need a way (a really simple one, i dont want to create a database or
> an ldap server just for this) to tell exim and dovecot to lookup some
> file to get the quota limits. I know how to doit with exim, now i need
> to know how to tell dovecot to read the quota limits from this file. I
> know that dovecot can read the quota limit from the userdb, but im using
> pam and i dont want to change the entire auth schema.
> Can I configure dovecot to get the quota limit from a file using pam as
> userdb?
>
> Thanks, Juan.
>
> pd: here is my doveconf -n
>
> # 2.0.13: /usr/local/etc/dovecot/dovecot.conf
> # OS: Linux 2.6.18-238.9.1.el5 x86_64 CentOS release 5.6 (Final) ext3
> auth_cache_size = 10 M
> auth_debug = yes
> auth_verbose = yes
> base_dir = /var/run/dovecot/
> default_client_limit = 5000
> default_process_limit = 1000
> disable_plaintext_auth = no
> listen = *
> login_greeting = Server ready.
> mail_debug = yes
> mail_location = maildir:/var/mail/%u:INDEX=~/
> mail_plugins = quota
> maildir_very_dirty_syncs = yes
> passdb {
> args = failure_show_msg=yes %s
> driver = pam
> }
> plugin {
> mail_log_events = delete undelete expunge copy mailbox_delete
> mailbox_rename
> mail_log_fields = uid box msgid size subject
> quota = maildir:Cuota de correo
> quota_rule = *:storage=1G
> quota_rule2 = Trash:storage=+100M
> }
> protocols = imap pop3
> service auth {
> client_limit = 12000
> }
> service imap {
> process_limit = 5000
> }
> service pop3 {
> process_limit = 5000
> }
> ssl = no
> ssl_cert = </etc/ssl/certs/dovecot.pem
> ssl_key = </etc/ssl/private/dovecot.pem
> userdb {
> driver = passwd
> }
> protocol imap {
> imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags
> mail_plugins = quota imap_quota
> }
> protocol pop3 {
> pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
> pop3_lock_session = yes
> pop3_uidl_format = %08Xv%08Xu
> }
>
Try to google "exim smtp-time quota bounce". This is what you need.
Exim can't do rcpt acl quota checks from the box, thus you need:
1)Some external script which will periodically create overquota file\database of
users and reject them at smtp-time using lookup
2)Or write perl-script and exec it in router stage. Script will open maildirsize
file, count quota and gives you 'yes\no'.
Also you need to deliver via dovecot deliver. This scheme will work.