[Dovecot-de] IMAP copy nach shared folder schlägt fehl, weil der aktuell genutzte Speicherplatz des Zielpostfachs das Quota-Limit des angemeldeten Nutzers überschreitet??

Katja Wegner katja.wegner92 at web.de
Do Jun 5 17:37:49 CEST 2014


Hallo Liste,
Ich habe ein Problem bei der Berechnung der Quotas auf meinem Server (Postfix+Dovecot 2.0.19) und brauche mal einen Denkanstoß.

Folgende Situation:
 - NutzerA hat ein Quota-Limit von 1GB. Aktuell werden davon 15MB belegt.
 - NutzerB hat ein Quota-Limit von 10MB. Aktuell werden davon 10kB belegt.
 - NutzerA gibt nun den Ordner 'shared_folder' für NutzerB mit allen Rechten frei.
 - NutzerB hat den Ordner 'shared_folder' abboniert.
 - alles funktioniert supi

Jetzt wird es spannend:
 - NutzerB versucht nun via Telnet eine E-Mail in den 'shared_folder' von NutzerA zu kopieren (". copy 1:1 shared/NutzerA/shared_folder")
   Dies schlägt jedoch fehl mit der Meldung "NO [OVERQUOTA] Quota exceeded (mailbox for user is full)".
 - Nachdem ich das Quota-Limit von NutzerB auf 16MB erhöht habe (1MB höher als der aktuell verbrauchte Speicherplatz von NutzerA) funktioniert alles wie gewünscht.

Die Aktion schlägt fehl, weil der genutzte Speicherplatz von NutzerA das Quota-Limit von NutzerB übersteigt.
An dieser Stelle komme ich nun aktuell einfach nicht weiter. Das kann doch nicht sein oder? Selbstkritisch wie ich bin vermute ich stark, dass ich bei der Konfiguration etwas vergessen habe aber ich kann mir aktuell nicht vorstellen an welche Stelle?

dovecot -n
# 2.0.19: /etc/dovecot/dovecot.conf
# OS: Linux 3.5.0-51-generic x86_64 Ubuntu 12.04.4 LTS ext4
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = plain login
auth_verbose = yes
dict {
  sqldomainquota = mysql:/etc/dovecot/dovecot-sql-domain.conf
  sqluserquota = mysql:/etc/dovecot/dovecot-dict-sql-user.conf
}
first_valid_uid = 150
last_valid_uid = 150
mail_debug = yes
mail_gid = mail
mail_location = maildir:/var/vmail/%d/%n
mail_plugins = " quota acl"
mail_uid = vmail
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
namespace {
  inbox = yes
  location =
  prefix =
  separator = /
  type = private
}
namespace {
  list = children
  location = maildir:/var/vmail/mydomain.de/%%n:CONTROL=/var/vmail/mydomain.de/%n/shared/%%n:INDEX=/var/vmail/mydomain.de/%n/shared/%%n
  prefix = shared/%%n/
  separator = /
  subscriptions = yes
  type = shared
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  acl = vfile
  acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes.db
  quota = dict:User quota::proxy::sqluserquota
  quota_rule2 = shared:ignore
  sieve = ~/_dovecot_sieve
  sieve_dir = ~/sieve
}
postmaster_address = kontakt at mydomain.de
protocols = imap pop3 sieve
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener /var/spool/postfix/private/dovecot-auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    group = mail
    mode = 0600
    user = vmail
  }
}
service dict {
  unix_listener dict {
    mode = 0600
    user = vmail
  }
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_cipher_list = ALL:!LOW:!SSLv2:ALL:!aNULL:!ADH:!eNULL:!EXP:RC4+RSA:+HIGH:+MEDIUM
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocol imap {
  imap_client_workarounds = delay-newmail
  mail_max_userip_connections = 10
  mail_plugins = " quota imap_quota acl imap_acl"
}
protocol pop3 {
  mail_max_userip_connections = 10
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
  deliver_log_format = msgid=%m: %$
  mail_plugins = acl
  postmaster_address = postmaster
  quota_full_tempfail = yes
  rejection_reason = Your message to <%t> was automatically rejected:%n%r
}


Mehr Informationen über die Mailingliste Dovecot