Problem with fs:User quota: Postfix quota-status returns always DUNNO

Niccolo Rigacci niccolo at rigacci.org
Tue Feb 23 13:36:09 EET 2021


I installed a mail server on a Debian GNU/Linux 10 Buster, which 
provide Dovecot 2.3.4.1.

It works almost everything, but I'm unable to make the Postfix 
quota service to work as expected.

First of all I verify that the Dovecot idea of quota is OK:

  doveadm quota get -u username at example.org
  Quota name Type    Value Limit   %
  User quota STORAGE  2752  3500  78

Then I ask the Postfix quota-status service:

  printf "recipient=username at example.org\nsize=3000000\n\n" \
    | nc localhost 12340
  action=DUNNO

But a size of 3 Mb should trigger the "action=554 5.2.2 Quota 
exceeded" message.

I find a workaround for this problem: just adding the following 
section will "fix" the problem:

  plugin {
    quota_over_flag_value = FALSE
    quota_over_script = quota-warning mismatch %u
  }

How the quota_over_flag_value is related to the quota over 
filesystem?
Why should I add both the quota_over_flag_value AND the 
quota_over_script options?

The script is executed always for each SMTP check (regardless of 
the quota_over_flag_value is FALSE or TRUE), obviously I provided 
a "do nothing" quota-warning script.


Here the relevant parts of "dovecot -n" output:

plugin {
  quota = fs:User quota:user
  quota_grace = 5%%
  quota_over_flag_value = FALSE
  quota_over_script = quota-warning mismatch %u
  quota_status_nouser = DUNNO
  quota_status_overquota = 554 5.2.2 Quota exceeded
  quota_status_success = DUNNO
  quota_warning = storage=90%% quota-warning 90 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_before = ~/sieve_before.d/
  sieve_extensions = +vnd.dovecot.filter
  sieve_filter_bin_dir = /usr/local/lib/dovecot/sieve-filter
  sieve_filter_socket_dir = sieve-filter
  sieve_plugins = sieve_extprograms
}

service quota-status {
  client_limit = 1
  executable = quota-status -p postfix
  inet_listener {
    port = 12340
  }
}

service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  unix_listener quota-warning {
    group = dovecot
    mode = 0666
    user = dovecot
  }
  user = root
}

-- 
Niccolo Rigacci - http://www.rigacci.net/
Firenze/Prato - Italy
Tel. Mobile: +39-327-5619352


More information about the dovecot mailing list