I seem to have fixed this, but I'm not sure if there's a better way. I did it 
by:
 * Going into each mailbox
 * Deleting all cyrus* files
 * Reconstructing the mailbox
Here's the script I used.

#! /bin/bash
# Rebuild all cyrus imap mailboxes
# rjm 20230723
# To be run by the cyrus user
if [ $USER != "cyrus" ]
then
    echo "This script should be run by the 'cyrus' user."
    exit
fi

# First, go to the top of the uuid mailboxes
pushd /var/spool/cyrus/mail/uuid > /dev/null 2>&1

# Now go through all the mailboxes, ignoring comments
for mbox in `cat /var/spool/cyrus/mailboxes.txt | sed -e '/^#/d'`
do
    # Find its directory
    mbdir=`/usr/lib/cyrus/bin/mbpath $mbox`

    pushd $mbdir > /dev/null 2>&1

    ls -la cyrus*

    # Now to reconstruct the mailbox
    rm -f cyrus*

    # Return to home directory
    popd > /dev/null 2>&1

    # Now reconstruct the mailbox
    /usr/lib/cyrus/bin/reconstruct $mbox

done

popd > /dev/null 2>&1


You'll need to put a copy of /var/lib/cyrus/mailboxes.txt into 
/var/spool/cyrus, edit it as necessary to include only the mailboxes you want 
to fix (comments are allowed with '#'), and run this script as the cyrus user 
(or whatever runs imapd in your box). 
You should probably shut down the imapd service before running this. Note that 
it could take quite a long time.
------------------------------------------
Cyrus: Info
Permalink: 
https://cyrus.topicbox.com/groups/info/Te7c9676a0453d5b0-M524cc5c031c0a3a073b98315
Delivery options: https://cyrus.topicbox.com/groups/info/subscription

Reply via email to