Quota emails... nothing happened

Stephane Magnier steph.mag220 at netcourrier.com
Wed Oct 6 15:36:03 EEST 2021


OK, but is the syntax correct ?

Should it be : *azt000:quota_rule4=+160GB   ?
*Is that correct ?*

*Because I've made the test.. It didn't "shoot at me" while restarting 
the service, it apparently accept the syntax, but the result is still 
wrong..
It is still considering a limit of 30gb and not 160Gb
( the line : quota_rule = *:storage=30GB )

To sum up , I have

    plugin {
      quota = maildir:User quota
      quota_rule = *:storage=30GB
      quota_rule2 = Trash:storage=+100MB
      quota_rule3 = Spam:storage=+20%%
      azt000:quota_rule4=+160GB


       quota_status_success = DUNNO
       quota_status_nouser = DUNNO
       quota_status_overquota = "552 5.2.2 Mailbox is full"
       quota_warning = storage=95%% quota-warning 95 %u
        quota_warning2 = storage=80%% quota-warning 80 %u
        quota_warning3 = storage=100%% quota-warning below %u
       quota_grace = 10%%

       # Quota plugin can also limit the maximum accepted mail size.
       quota_max_mail_size = 100M
    }

and

    userdb {
       driver = passwd
       args = /etc/dovecot/quota-overrides
       result_success=continue-ok
    }

but

    [root at mbox1 conf.d]# service dovecot restart
    Redirecting to /bin/systemctl restart dovecot.service
    [root at mbox1 conf.d]# doveadm quota  get -u azt000
    Quota name Type       Value Limit %
    User quota STORAGE 22268406
    31457280                                                      70
    User quota MESSAGE    29853 - 0
    [root at mbox1 conf.d]#



With 70% ; it's considering the 30Gb and not the 160Gb ( the AZT000 
folder size is about 21Gb )


Le 06/10/2021 à 14:08, Aki Tuomi a écrit :
> The rules must be consecutive,
>
> if your global config has
>
> quota_rule1
> quota_rule2
>
> then the userdb must return
>
> quota_rule3. Or it will overwrite an existing rule.
>
> Aki
>
>
>> On 06/10/2021 13:07 Stephane Magnier <steph.mag220 at netcourrier.com> wrote:
>>
>>
>> Hi,
>>   
>>   OK, I wrote this :
>>   
>>
>>> userdb {
>>>   driver = passwd
>>>   args = /etc/dovecot/quota-overrides
>>>   
>>>   result_success=continue-ok
>>>   
>>>   # Override fields from passwd
>>>   #override_fields = home=/home/virtual/%u
>>>   }
>>>
>>   but sorry I don't understand the following line
>>
>>   username::::::::::quota_ruleX=... where X is the next rule number.
>>
>>   What should I write ?...... for instance :  ? something like that ??
>>   
>>   
>>   
>>   
>>   Le 06/10/2021 à 10:13, Aki Tuomi a écrit :
>>
>>> That `*` there is actually mailbox mask. You have to return an additional quota_ruleN from your userdb for that user.
>>>
>>> You can do e.g.
>>>
>>> userdb {
>>>     ..
>>>     result_success=continue-ok}
>>> }
>>>
>>> userdb {
>>>     driver = passwd
>>>     args = /etc/dovecot/quota-overrides
>>> }
>>>
>>> and put in there
>>>
>>> username::::::::::quota_ruleX=... where X is the next rule number.
>>>
>>> the count of : might be wrong.
>>>
>>> Aki
>>>
>>>
>>>> On 06/10/2021 10:43 Stephane Magnier <steph.mag220 at netcourrier.com> wrote:
>>>>
>>>>
>>>> Hi Again,
>>>>   
>>>>   Juste another one...
>>>>   
>>>>   The quota I've decided is 30Gb for everybody
>>>>   I would like to add an exception for the user AZT000 so here is my test :
>>>>   
>>>>   I put 60 GB for AZT000, but apparently, this is not seen :-( No error message
>>>>   Is there a general syntax for a specific user ?
>>>>   
>>>>   NB: I tried :
>>>>   quota_rule = azt000:storage=+60GB orquota_rule1 = azt000:storage=+60GB same results
>>>>   
>>>>   
>>>>
>>>>
>>>>> plugin {
>>>>>   quota = maildir:User quota
>>>>>   quota_rule = *:storage=30GB
>>>>>   quota_rule2 = Trash:storage=+100MB
>>>>>   quota_rule3 = Spam:storage=+20%%
>>>>>   # quota_rule = *:storage=70GB
>>>>>   # quota_rule = *:storage=70GB
>>>>>   quota_rule = azt000:storage=+60GB
>>>>>
>>>>>
>>>> Le 06/10/2021 à 08:09, Stephane Magnier a écrit :
>>>>
>>>>
>>>>> Great !! works fine..
>>>>>   
>>>>>   I had in fact, twice the same déclaration of quotat and storage on the same file..... one of them was with an upper case "S" for Storage..
>>>>>
>>>>>   Thanks again
>>>>>   
>>>>>
>>>>> Le 06/10/2021 à 07:50, Aki Tuomi a écrit :
>>>>>
>>>>>
>>>>>>> On 06/10/2021 08:38 Stephane Magnier <steph.mag220 at netcourrier.com> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>   
>>>>>>>
>>>>>>> Le 06/10/2021 à 06:51, Aki Tuomi a écrit :
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>> On 06/10/2021 07:30 Stephane Magnier <steph.mag220 at netcourrier.com> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>   
>>>>>>>>>
>>>>>>>>> Le 06/10/2021 à 06:10, Stephane Magnier a écrit :
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>   I am just running Dovecot v 2.3.8 .. seems to work fine.
>>>>>>>>>>   I just add the quota plugin.. and.. I cannot see any differences.. I cannot see any information on Quota per user.. No specific info on Log file :-(
>>>>>>>>>>   
>>>>>>>>>>   Any help please ?
>>>>>>>>>>   
>>>>>>>>>>   Tahnks for your help
>>>>>>>>>>   
>>>>>>>>>>   Here is my config :
>>>>>>>>>>   
>>>>>>>>>>
>>>>>>>>>> # 2.3.8 (9df20d2db): /etc/dovecot/dovecot.conf
>>>>>>>>>> # Pigeonhole version 0.5.8 (b7b03ba2)
>>>>>>>>>> # OS: Linux 4.18.0-305.12.1.el8_4.x86_64 x86_64 CentOS Linux release 8.4.2105 nfs4
>>>>>>>>>> # Hostname: mbox1.intranet.office.itx
>>>>>>>>>> auth_cache_negative_ttl = 5 mins
>>>>>>>>>> auth_cache_ttl = 5 mins
>>>>>>>>>> auth_mechanisms = plain login
>>>>>>>>>> auth_username_format = %u
>>>>>>>>>> debug_log_path = /var/log/dovecot-debug.log
>>>>>>>>>> default_vsz_limit = 4 G
>>>>>>>>>> info_log_path = /var/log/dovecot-info.log
>>>>>>>>>> listen = * [::]
>>>>>>>>>> log_path = /var/log/dovecot.log
>>>>>>>>>> login_trusted_networks = 172.18.0.0/16 127.0.0.1 ::1
>>>>>>>>>> mail_access_groups = dovecot
>>>>>>>>>> mail_fsync = always
>>>>>>>>>> mail_location = maildir:/var/spool2/mail/%u:LAYOUT=fs
>>>>>>>>>> mail_nfs_storage = yes
>>>>>>>>>> mail_plugins = " quota"
>>>>>>>>>> mail_privileged_group = mail
>>>>>>>>>> managesieve_notify_capability = mailto
>>>>>>>>>> managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
>>>>>>>>>> mbox_very_dirty_syncs = yes
>>>>>>>>>> mbox_write_locks = fcntl
>>>>>>>>>> mmap_disable = yes
>>>>>>>>>> namespace inbox {
>>>>>>>>>>    disabled = no
>>>>>>>>>>    ignore_on_failure = no
>>>>>>>>>>    inbox = yes
>>>>>>>>>>    list = yes
>>>>>>>>>>    location =
>>>>>>>>>>    mailbox Archive {
>>>>>>>>>>      auto = no
>>>>>>>>>>      comment = " All my Accepted/NON  SPAM"
>>>>>>>>>>      special_use = \Archive
>>>>>>>>>>    }
>>>>>>>>>>    mailbox Drafts {
>>>>>>>>>>      auto = subscribe
>>>>>>>>>>      special_use = \Drafts
>>>>>>>>>>    }
>>>>>>>>>>    mailbox Junk {
>>>>>>>>>>      auto = subscribe
>>>>>>>>>>      autoexpunge = 90 days
>>>>>>>>>>      special_use = \Junk
>>>>>>>>>>    }
>>>>>>>>>>    mailbox Sent {
>>>>>>>>>>      auto = subscribe
>>>>>>>>>>      special_use = \Sent
>>>>>>>>>>    }
>>>>>>>>>>    mailbox Trash {
>>>>>>>>>>      auto = no
>>>>>>>>>>      autoexpunge = 60 days
>>>>>>>>>>      special_use = \Trash
>>>>>>>>>>    }
>>>>>>>>>>    mailbox virtual/All {
>>>>>>>>>>      auto = no
>>>>>>>>>>      special_use = \All
>>>>>>>>>>    }
>>>>>>>>>>    prefix =
>>>>>>>>>>    subscriptions = yes
>>>>>>>>>>    type = private
>>>>>>>>>> }
>>>>>>>>>> passdb {
>>>>>>>>>>    driver = pam
>>>>>>>>>> }
>>>>>>>>>> plugin {
>>>>>>>>>>    quota_grace = 10%%
>>>>>>>>>>    quota_max_mail_size = 100M
>>>>>>>>>>    quota_rule = *:storage=10000M
>>>>>>>>>>    quota_rule2 = Trash:Storage=+100M
>>>>>>>>>>    quota_rule3 = Spam:storage=+20%%
>>>>>>>>>>    quota_status_nouser = DUNNO
>>>>>>>>>>    quota_status_overquota = 552 5.2.2 Mailbox is full
>>>>>>>>>>    quota_status_success = DUNNO
>>>>>>>>>>    quota_warning = storage=95%% quota-warning 95 %u
>>>>>>>>>>    quota_warning2 = storage=80%% quota-warning 80 %u
>>>>>>>>>>    quota_warning3 = -storage=100%% quota-warning below %u
>>>>>>>>>>    sieve = file:~/sieve;active=~/.dovecot.sieve
>>>>>>>>>> }
>>>>>>>>>> pop3_uidl_format = %v-%u
>>>>>>>>>> service auth {
>>>>>>>>>>    unix_listener auth-master {
>>>>>>>>>>      mode = 0666
>>>>>>>>>>    }
>>>>>>>>>>    unix_listener auth-userdb {
>>>>>>>>>>      mode = 0600
>>>>>>>>>>      user = mail
>>>>>>>>>>    }
>>>>>>>>>> }
>>>>>>>>>> service dict {
>>>>>>>>>>    unix_listener dict {
>>>>>>>>>>      mode = 0600
>>>>>>>>>>      user = mail
>>>>>>>>>>    }
>>>>>>>>>> }
>>>>>>>>>> service imap-login {
>>>>>>>>>>    inet_listener imap {
>>>>>>>>>>      port = 143
>>>>>>>>>>    }
>>>>>>>>>>    inet_listener imaps {
>>>>>>>>>>      port = 993
>>>>>>>>>>      ssl = yes
>>>>>>>>>>    }
>>>>>>>>>>    process_min_avail = 4
>>>>>>>>>>    service_count = 0
>>>>>>>>>> }
>>>>>>>>>> service lmtp {
>>>>>>>>>>    inet_listener lmtp {
>>>>>>>>>>      port = 24
>>>>>>>>>>    }
>>>>>>>>>>    unix_listener /var/run/lmtp {
>>>>>>>>>>      group = mail
>>>>>>>>>>      mode = 0660
>>>>>>>>>>      user = mail
>>>>>>>>>>    }
>>>>>>>>>> }
>>>>>>>>>> service pop3-login {
>>>>>>>>>>    inet_listener pop3 {
>>>>>>>>>>      address = *
>>>>>>>>>>      port = 110
>>>>>>>>>>    }
>>>>>>>>>>    inet_listener pop3s {
>>>>>>>>>>      port = 995
>>>>>>>>>>      ssl = yes
>>>>>>>>>>    }
>>>>>>>>>> }
>>>>>>>>>> service quota-warning {
>>>>>>>>>>    executable = script /usr/local/bin/quota-warning.sh
>>>>>>>>>>    unix_listener quota-warning {
>>>>>>>>>>      user = mail
>>>>>>>>>>    }
>>>>>>>>>>    user = dovecot
>>>>>>>>>> }
>>>>>>>>>> service submission {
>>>>>>>>>>    process_limit = 250
>>>>>>>>>> }
>>>>>>>>>> ssl = required
>>>>>>>>>> ssl_ca = </etc/mail/ssl/ssl1/xxxxxp_net.ca-bundle
>>>>>>>>>> ssl_cert = </etc/mail/ssl/ssl1/xxxxxx_net.crt
>>>>>>>>>> ssl_cipher_list = HIGH:!aNULL:!ADH:!DH:!RC4:!MD5:!RSA
>>>>>>>>>> ssl_dh = # hidden, use -P to show it
>>>>>>>>>> ssl_key = # hidden, use -P to show it
>>>>>>>>>> userdb {
>>>>>>>>>>    driver = passwd
>>>>>>>>>> }
>>>>>>>>>> verbose_proctitle = yes
>>>>>>>>>> protocol lmtp {
>>>>>>>>>>    mail_fsync = optimized
>>>>>>>>>>    mail_plugins = autocreate quota acl fts fts_solr zlib mail_log notify sieve
>>>>>>>>>>    postmaster_address = it at intranet.office.itx
>>>>>>>>>> }
>>>>>>>>>> protocol lda {
>>>>>>>>>>    mail_fsync = optimized
>>>>>>>>>>    mail_plugins = " quota sieve quota"
>>>>>>>>>> }
>>>>>>>>>> protocol imap {
>>>>>>>>>>    mail_max_userip_connections = 80
>>>>>>>>>>    mail_plugins = " quota quota imap_quota"
>>>>>>>>>>    ssl_cert = </etc/mail/ssl/ssl1/STAR_aztgrp_net.crt
>>>>>>>>>>    ssl_key = # hidden, use -P to show it
>>>>>>>>>> }
>>>>>>>>>> protocol pop3 {
>>>>>>>>>>    mail_max_userip_connections = 10
>>>>>>>>>>    mail_plugins = " quota"
>>>>>>>>>> }
>>>>>>>>>> protocol submission {
>>>>>>>>>>    mail_max_userip_connections = 10
>>>>>>>>>>    mail_plugins = " quota"
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>   Just for info
>>>>>>>>>   
>>>>>>>>>   [root at mbox1 xenia]# doveadm quota get -A |grep "STORAGE"
>>>>>>>>>   Nothing at all ?? weird
>>>>>>>>>   [root at mbox1 xenia]#
>>>>>>>>>   
>>>>>>>>>   [root at mbox1 xenia]# doveadm quota get -u <user1>
>>>>>>>>>   Quota name Type Value Limit %
>>>>>>>>>   [root at mbox1 xenia]#
>>>>>>>>>   => Absolutely nothing is displayed ????
>>>>>>>>>   
>>>>>>>>>   
>>>>>>>>>   normally, the size of the user1 email folder is about 21 Gb
>>>>>>>>>   So..just modified the line :quota_rule = *:storage=100G
>>>>>>>>>   But nothing has changed...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> You are missing quota driver settings, the recommended settings are
>>>>>>>>
>>>>>>>> plugin {
>>>>>>>>   quota = count
>>>>>>>>   quota_vsizes = yes
>>>>>>>> }
>>>>>>>>
>>>>>>>> Aki
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>   Hi Aki,
>>>>>>>   Thanks for your reply..
>>>>>>>   
>>>>>>>   I just tryed to ad it.. but this can't connect anymore .
>>>>>>>   Here is my exact declaration "90-quota.conf"
>>>>>>>   
>>>>>>>   ( based on : https://doc.dovecot.org/configuration_manual/quota/ )
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> plugin {
>>>>>>>>   quota = count
>>>>>>>>   quota_vsizes = yes
>>>>>>>>   #quota = maildir:User quota
>>>>>>>>   quota_rule = *:storage=100GB
>>>>>>>>   # quota_rule2 = Trash:storage=+100MB
>>>>>>>>   # quota_rule3 = Spam:storage=+20%%
>>>>>>>>   # 20% of 100GB = 20GB
>>>>>>>>   quota_status_success = DUNNO
>>>>>>>>   quota_status_nouser = DUNNO
>>>>>>>>   quota_status_overquota = "552 5.2.2 Mailbox is full"
>>>>>>>>   quota_warning = storage=95%% quota-warning 95 %u
>>>>>>>>   quota_warning2 = storage=80%% quota-warning 80 %u
>>>>>>>>   quota_warning3 = -storage=100%% quota-warning below %u
>>>>>>>>   
>>>>>>>>   # LDA/LMTP allows saving the last mail to bring user from under quota to
>>>>>>>>   # over quota, if the quota doesn't grow too high. Default is to allow as
>>>>>>>>   # long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
>>>>>>>>   quota_grace = 10%%
>>>>>>>>   
>>>>>>>>   # Quota plugin can also limit the maximum accepted mail size.
>>>>>>>>   quota_max_mail_size = 100M
>>>>>>>>   }
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>   
>>>>>>>   The error message I have now is :
>>>>>>>   
>>>>>>>   Oct 06 07:23:35 imap(azt000)<7381><3pAIWajNgdcgAUHQ/kJ8Aikr1PIAQmFL>: Error: Failed to initialize quota: Invalid quota root quota: Invalid rule Trash:Storage=+100M: Unknown rule limit name: Storage
>>>>>>>   Oct 06 07:23:35 imap(azt000)<7382><jqwJWajNgtcgAUHQ/kJ8Aikr1PIAQmFL>: Error: Failed to initialize quota: Invalid quota root quota: Invalid rule Trash:Storage=+100M: Unknown rule limit name: Storage
>>>>>>>   Oct 06 07:26:02 master: Warning: Killed with signal 15 (by pid=8420 uid=0 code=kill)
>>>>>>>   Oct 06 07:26:10 imap(azt000)<8468><cDRLYqjNcsSsEgA3>: Error: Failed to initialize quota: Invalid quota root quota: Invalid rule Trash:Storage=+100M: Unknown rule limit name: Storage
>>>>>>>   Oct 06 07:26:13 imap(azt000)<8469><mxN6YqjNdMSsEgA3>: Error: Failed to initialize quota: Invalid quota root quota: Invalid rule Trash:Storage=+100M: Unknown rule limit name: Storage
>>>>>>>
>>>>>>>   Then you can see that I've removed the 2 lines
>>>>>>>   # quota_rule2 = Trash:storage=+100MB
>>>>>>>   # quota_rule3 = Spam:storage=+20%%
>>>>>>>   
>>>>>>>   but without any success
>>>>>>>   
>>>>>>>   Effectively.. what is the Word "Storage" for Dovecot ?? no idea ... I just wrote what I saw :-)
>>>>>>>   
>>>>>>>   For info : all the mailbox are placed on a NFS storage.. Don't know if this help to locate the problem..
>>>>>>>   Thanks and regards,
>>>>>>>   
>>>>>>>   
>>>>>>>   
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> Did you try changing Storage => storage in your rule? It seems to be coming either from userdb or your config.
>>>>>>
>>>>>> Try `doveadm user azt000` to if your userdb is providing these rules.
>>>>>>
>>>>>> Aki
>>>>>>
>>>>>>
>>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20211006/3abc5eec/attachment-0001.html>


More information about the dovecot mailing list