[Dovecot] Renaming IMAP folders does not affect children

Johannes Simon simon at zsi.at
Thu Dec 30 14:56:23 EET 2010


Hi,

we're using dovecot2.0 since August and very happy with it.
Just recently Thunderbird users reported problems when renaming folders, 
and it seems that RFC 2060 (sec. 6.3.5) requires children of a renamed 
folder to be renamed, too. This however does not happen:

Talking IMAP I get:

* LIST (\HasChildren) "." "INBOX.NNN1"
* LIST (\HasNoChildren) "." "INBOX.NNN1.NNN1a"

. rename "INBOX.NNN1" "INBOX.NNN2"

* LIST (\HasNoChildren) "." "INBOX.NNN1.NNN1a"
* LIST (\HasNoChildren) "." "INBOX.NNN2"

There seems to be no problem the filesystem rights, since this works:

. rename "INBOX.NNN1.NNN1a" "INBOX.NNN2.NNN1a"

* LIST (\HasChildren) "." "INBOX.NNN2"
* LIST (\HasNoChildren) "." "INBOX.NNN2.NNN1a"

Am I misunderstanding RFC 2060, or is my config wrong (doveconf -n 
below), or could it be a bug?

Cheers,
Johannes


# 2.0.8 (e030df616faf): /etc/dovecot/dovecot.conf
# OS: Linux 2.6.26-2-openvz-amd64 x86_64 Debian 5.0.7
default_client_limit = 2500
default_process_limit = 600
dotlock_use_excl = yes
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_greeting = Dovecot 2 ready.
mail_fsync = always
mail_location = maildir:~/Maildir
mail_nfs_index = yes
mail_nfs_storage = yes
mail_plugins = autocreate acl
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
mmap_disable = yes
namespace {
  inbox = yes
  location =
  prefix = INBOX.
  separator = .
  type = private
}
namespace {
  list = yes
  location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
  prefix = INBOX.shared.%%u.
  separator = .
  subscriptions = no
  type = shared
}
passdb {
  args = session=yes dovecot
  driver = pam
}
plugin {
  acl = vfile
  acl_shared_dict = file:/etc/dovecot/dict/shared-mailboxes
  autocreate = INBOX.Trash
  autocreate2 = INBOX.Junk
  autocreate3 = INBOX.Sent
  autocreate4 = INBOX.Junk_old
  autocreate5 = INBOX.Drafts
  autosubscribe = INBOX.Trash
  autosubscribe2 = INBOX.Junk
  autosubscribe3 = INBOX.Sent
  autosubscribe4 = INBOX.Drafts
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
protocols = imap pop3
service auth {
  unix_listener auth-userdb {
    mode = 0666
  }
}
service dict {
  user = dovecot
}
service imap-postlogin {
  executable = script-login rawlog /etc/dovecot/postlogin.sh
  user = root
}
service imap {
  executable = imap imap-postlogin
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = blocking=yes
  driver = passwd
}
protocol imap {
  mail_max_userip_connections = 50
  mail_plugins = autocreate acl imap_acl
}
protocol pop3 {
  mail_max_userip_connections = 3
}



More information about the dovecot mailing list