Solved? - Re: Understanding quotas

Robert Moskowitz rgm at htt-consult.com
Sun Mar 19 09:12:28 EET 2017


I spent an evening, again, reading up on quota.  This time I think my 
search foo was strong enough.  I found guidance and came up with the 
following:

     sed -i -e "s/#quota = /sqlquota = /w /dev/stdout" 
/etc/dovecot/dovecot.conf

Sets up a dovecot dictionary of sqlquota to the default file of 
/etc/dovecot/dovecot-dict-sql.conf.ext

     cat <<EOF>>/etc/dovecot/conf.d/90-quota.conf || exit 1
     plugin {
       quota = dict:user::proxy::sqlquota
     }
     EOF


Appends to the end of 90-quota.conf (tried to do with with a single SED, 
but it was getting messy)

finally:

cat <<EOF>/etc/dovecot/dovecot-dict-sql.conf.ext || exit 1
connect = host=localhost dbname=postfix user=postfix 
password=$Postfix_Database_Password
map {
   pattern = priv/quota/storage
   table = quota2
   username_field = username
   value_field = bytes
}
map {
   pattern = priv/quota/messages
   table = quota2
   username_field = username
   value_field = messages
}
EOF

Please let me know if I missed something here.

Thanks

On 03/17/2017 09:08 AM, Robert Moskowitz wrote:
> Just to level-set, I am using Centos7-arm which supplies Dovecot 
> 2.2.10.  I don't have access to a arm build or mock environment and 
> use what is available (I DID try to install them but had dependency 
> issues).
>
> Much of what I have is from campworld, but some I have picked up from 
> other Centos mailserver builders.
>
> Also I am using Postfixadmin which provides quotas per user in mysql 
> database.  To access those quotas for dovecot, I have the following 
> script:
>
> cat <<EOF>/etc/dovecot/dovecot-dict-quota.conf || exit 1
> connect = host=localhost dbname=postfix user=postfix 
> password=$Postfix_Database_Password
> map {
>   pattern = priv/quota/storage
>   table = quota2
>   username_field = username
>   value_field = bytes
> }
> map {
>   pattern = priv/quota/messages
>   table = quota2
>   username_field = username
>   value_field = messages
> }
> EOF
>
> Where $Postfix_Database_Password is an env variable in my install howto.
>
> I am setting up quota plugins as follows:
>
> sed -i "/#mail_plugins/ a  mail_plugins = quota sieve" 
> /etc/dovecot/conf.d/15-lda.conf
> sed -i "/#mail_plugins / a  mail_plugins = quota imap_quota trash" 
> /etc/dovecot/conf.d/20-imap.conf
> sed -i "/#mail_plugins/ a  mail_plugins = quota" 
> /etc/dovecot/conf.d/20-pop3.conf
>
> But I am having 'challenges' with how to actually enable quotas and 
> understanding 90-quota.conf.  I am starting from campworld's 'reduced' 
> dovecot.conf seeing:
>
> dict {
>   quotadict = mysql:/etc/dovecot/dovecot-dict-quota.conf
> }
>
> and
>
> plugin {
>   quota = dict:user::proxy::quotadict
>   acl = vfile:/etc/dovecot/acls
>   trash = /etc/dovecot/trash.conf
>   sieve_global_path = /home/sieve/globalfilter.sieve
>   sieve = ~/dovecot.sieve
>   sieve_dir = ~/sieve
>   sieve_global_dir = /home/sieve/
>   #sieve_extensions = +notify +imapflags
>   sieve_max_script_size = 1M
> }
>
>
>
> I have put the sieve plugin lines into the 90-sieve.conf and the acl 
> into 10-acl.conf.  Trash is a separate matter for a later question...
>
> So I am looking for guidance as to how to integrate the Postfixadmin 
> quota information properly into 90-quota.conf
>
> thank you
>



More information about the dovecot mailing list