[Dovecot] Trash and quota

Ken Dail kend at amigo.net
Fri Dec 15 19:54:07 UTC 2006


Richard wrote:

> From what I understand, you need to include a 'quota' field in your
> database authentication table, to include per user quota's. Only then
> will the query I specified really work. In your present database, add
> the quota field and insert a KB value. This value will then be used  
> when
> the authentication query is executed. In the example SQL query I  
> posted,
> I used a tabled called quota_kb.

Yeah, I've had quotas in my DB since using Courier. However I could  
find no evidence that Dovecot used the quota value returned by the  
query. as evidenced by:
1. if there is a setting in dovecot.conf for quota, that was the  
value used for calculating quota, regardless of what is returned by  
the db.
2. if you remove the quota=maildir from dovecot.conf and have the  
query return "maildir" as quota, Dovecot will no longer calculate  
quotas.
3. If you leave quota=maildir with no storage value in dovecot.conf  
and return a quota value from the query as below, the value present  
in the maildirsize file takes precedence.

> One way to test the whole setup is to enable all the debug and verbose
> option in your config file, and then check the logs to see what its
> doing.

I will give that a try today.

> Maybe including your sql.conf file will help solve your problem. From
> what I see your quota config is correct, you just need to add the  
> quota
> field in to your DB, and it should work for you.

Your query worked quite fine with my db setup with only minor  
modification, as I store the quotas in the DB with a trailing S that  
is required by Courier:
> concat('maildir:storage=',TRIM(TRAILING 'S' FROM  
> quota_kb),':ignore=Trash') AS quota

Everything points to quota being a variable that can't be modified by  
the extra fields option. Unfortunately, I think I will not have too  
much more time for random testing, I think I will have to wait for an  
authoritative answer, from somebody who can read (or has written) the  
code.

Has anybody out there successfully mixed Maildrop with Dovecot using  
per user maildir quotas?

Thanks for the ideas Richard!

>
> Current dovecot.conf:
> protocols = imap imaps pop3 pop3s
> disable_plaintext_auth = no
> login_greeting = amigo.net ready.
> mail_location = maildir:%h/Maildir
> namespace private {
>    separator = .
>    prefix = INBOX.
>    inbox = yes
>    hidden = no
> }
> mail_extra_groups = mail
> mmap_disable = yes
> lock_method = dotlock
> first_valid_uid = 465
> valid_chroot_dirs = /var/mail/virtual
> maildir_copy_with_hardlinks = yes
> protocol imap {
>   mail_plugins = quota imap_quota
>   login_greeting_capability = yes
>   imap_client_workarounds = outlook-idle } protocol pop3 {
>   pop3_uidl_format = %08Xu%08Xv
>   mail_plugins = quota
>   pop3_client_workarounds = outlook-no-nuls oe-ns-eoh } protocol lda {
>   postmaster_address = postmaster at amigo.net } auth_default_realm =
> amigo.net auth_username_translation = %@ auth_username_format = %Ln@%d
> auth_worker_max_count = 60 auth default {
>   mechanisms = plain login apop digest-md5 cram-md5
>   passdb sql {
>     args = /etc/dovecot/dovecot-sql.conf
>   }
>   userdb prefetch {
>   }
>   user = vmail
>   count = 1
>   socket listen {
>     master {
>       path = /var/run/dovecot/auth-master
>       mode = 0660
>       user = postfix
>       group = mail
>     }
>     client {
>       path = /var/run/dovecot/auth-client
>       mode = 0660
>     }
>   }
> }
> plugin {
>   quota = maildir
> }
>
> --
> Kenny Dail <kend at amigo.net>
>



More information about the dovecot mailing list