A user alerted me to a problem when he renamed an upper level mail folder and lost access to a lower level folder under it.

I tried with and without listescape, it didn't seem to make a difference, and I saw no errors in the dovecot log.

Symptoms are if a client has a maildir folder tree .a and .a.b and renames a to c in their client, Thunderbird shows c/b but b is inaccessible since it is still actually .a.b on the filesystem, unsubscribed but accessible if you go subscribe to it. Outlook Express seems to behave the same except it cannot access "b" (.a.b) at all now because "a" no longer exists. Subscribe window shows it, but you cannot subscribe (as expected for OE). According to the rawlog, Thunderbird just tries to rename the top level folder and change subscriptions, but doesn't rename other maildirs to match the new top level folder. On the other hand, Outlook seems to rename and subscribe the top folder and subfolders properly. Who is right, should the mail client be doing all the work, or should dovecot be doing more, or do I have something setup wrong? I'm pasting what I think are essentials from the rawlogs, and my dovecot -n. Thanks for any input.


tbird:

in:
23 lsub "" "zoinks2/*"
24 close
25 rename "zoinks2" "zoinks3"
26 subscribe "zoinks3"
27 unsubscribe "zoinks2"
28 subscribe "zoinks3/z2"
29 unsubscribe "zoinks2/z2"

out:
* LSUB () "/" "zoinks2/z2"
23 OK Lsub completed.
24 OK Close completed.
25 OK Rename completed.
26 OK Subscribe completed.
27 OK Unsubscribe completed.
28 NO [TRYCREATE] Mailbox doesn't exist: zoinks3/z2
29 OK Unsubscribe completed.

outlook:
in:
d7oy LIST "" "INBOX"
089m LSUB "" "zoinks3/*"
uh2o LSUB "" "*"
buaw SELECT ""
b51w LSUB "" "zoinks3"
fivz RENAME "zoinks3" "zoinks2"
6n3p LIST "" "zoinks3/*"
chbh RENAME "zoinks3/z2" "zoinks2/z2"
3hjt UNSUBSCRIBE "zoinks3/z2"
xlnc SUBSCRIBE "zoinks2/z2"
yyep UNSUBSCRIBE "zoinks3"
6gt2 SUBSCRIBE "zoinks2"
mvzq IDLE

out:
* LSUB () "/" "zoinks3/z2"
089m OK Lsub completed.
uh2o OK Lsub completed.
buaw NO Invalid mailbox name
* LSUB () "/" "zoinks3"
b51w OK Lsub completed.
fivz OK Rename completed.
* LIST (\HasNoChildren) "/" "zoinks3/z2"
6n3p OK List completed.
chbh OK Rename completed.
3hjt OK Unsubscribe completed.
xlnc OK Subscribe completed.
yyep OK Unsubscribe completed.
6gt2 OK Subscribe completed.

# 1.1.1: /usr/local/etc/dovecot.conf
ssl_cert_file: /usr/local/etc/apache22/ssl/mail.pem
ssl_key_file: /usr/local/etc/apache22/ssl/mail.pem
login_dir: /var/run/dovecot/login
login_executable: /usr/local/libexec/dovecot/imap-login
login_max_processes_count: 512
max_mail_processes: 1024
mail_max_userip_connections: 25
verbose_proctitle: yes
first_valid_uid: 1000
first_valid_gid: 1000
mail_access_groups: postlocal
mail_location: maildir:%h/Maildir:CONTROL=%h/Maildir/dovecot/private/control:INDEX=%h/Maildir/dovecot/private/indexes
mmap_disable: yes
mail_nfs_storage: yes
mail_nfs_index: yes
mail_drop_priv_before_exec: yes
mail_executable: /usr/local/libexec/dovecot/rawlog /usr/local/libexec/dovecot/imap
mail_process_size: 1024
mail_plugins: acl fts fts_squat listescape quota imap_quota
mail_log_max_lines_per_sec: 0
imap_client_workarounds: delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
namespace:
 type: private
 separator: /
 inbox: yes
 list: yes
 subscriptions: yes
namespace:
 type: private
 separator: /
 prefix: mail/
 hidden: yes
 subscriptions: yes
namespace:
 type: private
 separator: /
 prefix: Mail/
 hidden: yes
 subscriptions: yes
auth default:
 passdb:
   driver: pam
 userdb:
   driver: passwd
   args: system_user=
 socket:
   type: listen
   client:
     path: /var/spool/postfix/private/auth
     mode: 384
     user: postfix
     group: postfix
plugin:
 quota: fs:noenforcing:inode_per_mail
 acl: vfile:/usr/local/etc/dovecot-acls:cache_secs=10
 fts: squat

Reply via email to