Hi,

we have our namespace rooted at "INBOX.". Sometimes, users have folders like "INBOX.INBOX.Sent" or "INBOX.INBOX.INBOX.Sent". I do not know why these folders are created; I suspect it is due to buggy MUAs.

If a mailbox like INBOX.INBOX.Sent exists, then in some cases Dovecot counts all messages in INBOX twice.

This behavior can be demonstrated as follows:

1) Create a folder named "INBOX.INBOX.Sent" (using the IMAP CREATE command)
2) Save a message to "INBOX" (in my example the message is 7 MB)
3) dovecot-quota contains:

priv/quota/storage
7129025
priv/quota/messages
1

4) doveadm quota recalc -u user1
5) Now dovecot-quota contains

priv/quota/storage
14258050
priv/quota/messages
2

I.e. the user will experience that his quota fills up very fast.

"doveadm -f flow fetch -u user1 'mailbox guid' ALL" prints:

mailbox=INBOX guid=040ce73645177850497d000040c59ffc
mailbox=INBOX guid=040ce73645177850497d000040c59ffc

However,
"doveadm -f flow fetch -u user1 'mailbox guid' mailbox INBOX" prints the message only once:

mailbox=INBOX guid=040ce73645177850497d000040c59ffc


How can we prevent this kind of confusion? What I'd like most is prevent the creation of these weird folders. Most MUAs have problems listing them properly, especially if both "INBOX.Sent" and "INBOX.INBOX.Sent" exist.

Dovecot 2.1 does not seem to count anything twice.

Cheers,
Christoph


Config:

# 2.0.21: /usr/local/dovecot/etc/dovecot/dovecot.conf
doveconf: Warning: service auth { client_limit=4096 } is lower than required under max. load (6224)
# OS: Linux 2.6.32-42-server x86_64 Ubuntu 10.04.4 LTS
disable_plaintext_auth = no
mail_gid = vmail
mail_location = mdbox:~/mail
mail_plugins = quota
mail_uid = vmail
namespace default {
  inbox = yes
  location =
  prefix = INBOX.
  separator = .
  type = private
}
passdb {
args = scheme=CRYPT username_format=%u /usr/local/dovecot/etc/dovecot/users
  driver = passwd-file
}
plugin {
  quota = dict:ROOT::file:%h/dovecot-quota
  quota_rule = *:storage=5G
}
protocols = imap pop3
service auth {
  unix_listener auth-userdb {
    group = vmail
    mode = 0660
  }
}
service imap {
  process_limit = 5000
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = /usr/local/dovecot/etc/dovecot/users
  driver = passwd-file
}
protocol imap {
  imap_client_workarounds = tb-extra-mailbox-sep
  mail_max_userip_connections = 20
  mail_plugins = quota imap_quota
}

And the contents of the "users" file:

user1:{plain}secret:::user1:/mail/users/user1::

--
Christoph Bußenius
Rechnerbetriebsgruppe der Fakultäten Informatik und Mathematik
Technische Universität München
+49 89-289-18519 <> Raum 00.05.040 <> Boltzmannstr. 3 <> Garching

Reply via email to