Cyrus: mailbox undeleteable - how to edit mailboxes.db
jankow at datenkollektiv.net
Fri May 23 16:23:22 CEST 2014
I've a problem with a mailbox which is undeletable. The reason is a
white space in the mailbox name like:
/user/givenname middlename.surname at example.org
It was created during migration because of a wrong transliteration of
recipient policy - as far as I understood (some missing locales).
I changed/deleted the user - but the folder still resides in cyrus and
isn't deletable neither with "kolab dm MAILBOX" nor with cyradm directly.
Since it causes some cyrus problems: recursive reconstruction fails with
segfault and error about a nonexistent mailbox, I'd like to get rid of it.
The only idea I got is to manipulate the mailboxes.db directly to delete
the entries and delete the related folders in filesystem.
I did it already on a copy of the productive system with success (as far
as I could see).
But I would like to be sure that it has no side effects. Can anybody
tell me if this is a reasonable approach?
What I did:
# stop cyrus
service cyrus-imapd stop
# convert sikplist db to flat file
/usr/lib/cyrus-imapd/cvt_cyrusdb /srv/imap/config/mailboxes.db \
skiplist /root/tmp/mailboxes.db.txt flat
# deleted the lines of the related mailboxes
vi /root/tmp/mailboxes.db.txt flat
# converting back and copy to cyrus config dir
/usr/lib/cyrus-imapd/cvt_cyrusdb /root/tmp/mailboxes.db.txt \
flat /root/tmp/mailboxes.db.new skiplist
cp /root/tmp/mailboxes.db.new /srv/imap/config/mailboxes.db
chown cyrus:mail /srv/imap/config/mailboxes.db
chmod 600 /srv/imap/config/mailboxes.db
# delete the related folders
rm -r PATHOFFOLDER
# reconstruct mailbox
# start cyrus
service cyrus-imapd start
What do you think? Anything else to be done? Is it possible at all?
Thanks and Regards
More information about the users