Shared folders and quota

Fabian Kuran fabian at eideo.de
Fri Feb 9 10:46:02 EET 2018


Hi all,

we are able to observe a very strange behaviour:
User A wants to copy a mail to a shared mailbox of user B. This works like a 
charme if the quota of user A is lower than the used space of user B. But is the 
used space of user B higher than the quota size of User A, "User A" is not longer 
able to copy the message to the shared folder of user B. His IMAP Client says 
something like "NO OVERQUOTA". 

# doveadm quota get -u UserA
Quota name   Type    Value Limit    %
User quota   STORAGE 20085 25600   78
User quota   MESSAGE    68     -    0

# doveadm quota get -u UserB
Quota name   Type    Value  Limit   %
User quota   STORAGE 39963 122880  32
User quota   MESSAGE   160      -   0


Is this a known behaviour of dovecot? Is there a way to "disable" quota-handling
for shared folders?



This is my doveconf -n":
# 2.2.30.2 (c0c463e): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.18 (29cc74d)
# OS: SLES12SP3
auth_debug = yes
auth_master_user_separator = *
auth_mechanisms = plain login
auth_verbose = yes
debug_log_path = /var/log/dovecot.debug
dict {
  sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
first_valid_uid = 480
lmtp_save_to_detail_mailbox = yes
mail_debug = yes
mail_gid = vmail
mail_location = maildir:/var/spool/mail/user/%n/Maildir:LAYOUT=fs
mail_plugins = acl quota stats listescape notify virtual
mail_privileged_group = vmail
mail_uid = dovecot
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 index ihave duplicate mime foreverypart extracttext
namespace {
  hidden = yes
  inbox = yes
  list = no
  location = 
  prefix = 
  separator = /
  subscriptions = yes
}
namespace {
  list = children
  location = maildir:%%h/Maildir:INDEXPVT=~/shared/%%u:LAYOUT=fs
  prefix = user/%%n/
  separator = /
  subscriptions = no
  type = shared
}
namespace Public {
  list = children
  location = maildir:/var/mail/%d/public:INDEXPVT=~/public:LAYOUT=fs
  prefix = Public/
  separator = /
  subscriptions = no
  type = public
}
namespace inbox {
  inbox = no
  location = 
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix = INBOX/
  separator = /
  subscriptions = no
  type = private
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
passdb {
  args = /etc/dovecot/masteruser.%s
  driver = passwd-file
  master = yes
  pass = yes
}
plugin {
  acl = vfile
  acl_anyone = allow
  acl_shared_dict = file:/var/spool/mail/%d/shared-mailboxes.db
  quota = dict:User quota::proxy::sqlquota
  quota_rule = *:storage=4G
  quota_rule2 = INBOX/Trash:storage=+100M
  quota_status_nouser = DUNNO
  quota_status_overquota = 552 5.2.2 Mailbox is over quota / Mailbox ist voll
  quota_status_success = DUNNO
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=90%% quota-warning 90 %u
  sieve = ~/.dovecot.sieve
  sieve_before = /var/spool/mail/globalsieve/duplicate.sieve
  sieve_dir = ~/sieve
  sieve_duplicate_max_period = 5m
  stats_refresh = 30 secs
  stats_track_cmds = yes
}
postmaster_address = postmaster at domain.de
protocols = imap pop3 lmtp sieve
service auth-worker {
  user = dovecot
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    mode = 0666
  }
}
service dict {
  unix_listener dict {
    group = vmail
    mode = 0660
    user = dovecot
  }
}
service imap-postlogin {
  executable = script-login /var/mail/imapafter.sh
  user = $default_internal_user
}
service imap {
  executable = imap
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}
service quota-status {
  client_limit = 1
  executable = quota-status -p postfix
  inet_listener {
    address = 127.0.0.1
    port = 10000
  }
}
service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  group = vmail
  unix_listener quota-warning {
    group = vmail
    user = dovecot
  }
  user = dovecot
}
service stats {
  fifo_listener stats-mail {
    mode = 0600
    user = dovecot
  }
}
ssl_cert = </etc/ssl/certs/domain.de.pem
ssl_key =  # hidden, use -P to show it
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocol lmtp {
  mail_plugins = acl quota stats listescape notify virtual acl quota sieve
  quota_full_tempfail = yes
}
protocol lda {
  mail_plugins = acl quota stats listescape notify virtual acl sieve
}
protocol imap {
  mail_plugins = acl quota stats listescape notify virtual imap_quota imap_acl imap_stats
}


-- 
Kind regards,
Fabian


More information about the dovecot mailing list