Old mail rescue - can anyone help ?
craig at postnewspapers.com.au
Fri Jan 23 15:32:17 EST 2004
Robert Peckham wrote:
> I am a Cyrus user by proxy - it's the email server now built-in
> to Apple's Panther (OSXv10.3) Server, so I hope this posting
> is allowed !
They picked a good mail server then :-)
> Early on Monday morning, the Cyrus Mail folders became corrupted
> and would not be reconstructed. This was quickly followed by the server
> directories corrupting, then mapping errors - the result being a
> complete re-install of the entire server from scratch.
Nasty. Filesystem corruption maybe. It's probably an HFS+ filesystem ;-)
> Is there a way to re-import this mail into the new mail stores ?
> Or at least turn it all into text files for use ?
Note: I'm no Cyrus expert, but can offer a few suggestions. I can also
suggest more info that others might need to know to better help you. As
this is an Apple-modified system, take all this carefully. The following
instructions are a bit technical and I assume you have some familiarity
with working in a UNIX shell (the "Terminal" program).
It's probably not a bad idea to just look for now, and touch only if you
know you have to. Preferably once others have had a chance to offer a
little advice (or call me on any errors I may have made).
Apple has decent, if rather limited, documentation on their Cyrus system
(and Postfix) available here:
It's probably worth a read, as is
in general. If you haven't already, that is.
According to their docs, Apple have stored the cyrus config files in
their normal locations. See if you can view "/etc/cyrus.conf" and
"/etc/imapd.conf", but DO NOT MODIFY THESE FILES. If you can, reply with
those files attached to an email as it could be useful.
From their documentation, it appears that Apple has not modified Cyrus
too heavily - at least in terms of where and how it stores things. This
makes things easier.
In the Cyrus email system, the individual messages are already text
files. Your backup should contain a folder called "user" (unless Apple
have renamed it) with your mailboxes in it. It's probably
'var/spool/imap/user' in the backup archive. If you unpack that
somewhere like your /Users/Yourname folder, you should see a bunch of
folders under it:
etc, where username1, username2 etc are the user part of email accounts
on your system. Please DO NOT "restore" the backup of your mail spools
over the current one - it'll make a nasty mess, stuffing up the
numbering scheme, probably corrupting the mailbox and possibly
overwriting messages. Restore the old mail somewhere totally separate,
then copy back select folders.
Within the actual user folder, there should be a few files with names
beginning with 'cyrus.' and a lot of files of the form 'number.' eg '1.'
, '10.', etc. Each numbered file is a message, and can simply be opened
in a text editor like SimpleText/TextEdit.
Be aware that attachments will be in the body of the message as huge
masses of alphanumeric gibberish, and some text editors have real
problems opening multimegabyte text files. Other than causing issues
with text editors they cause no issues. If you simply can't view a file,
try doing this in the terminal:
(where 'username' is the username, and '10.' is the numbered message
file you want to view) as it'll let you progressively view the message.
You have to hit enter at the end of each line. Alternately,
head -500 10. > "/Users/Yourname/some-message-10"
will save the first 500 lines of a message into a separate file in your
If it complains about 'permission denied,' you probably have to be the
'cyrus' user. 'su cyrus' will let you become the Cyrus user on OSX; if
not, 'sudo su cyrus' may. If you have to, become root then run 'su
cyrus' to become the cyrus user. BE AWARE that the wrong typo can cause
damage to your mail system and possibly data loss - be careful.
It's possible to restore user mailboxes so they can be accessed using an
email client. I'd restore their mail to an "oldmail" folder, so the old
'user/craig' becomes 'user/craig/oldmail' ; 'user/craig/Sent' becomes
'user/craig/oldmail/Sent', etc. This should be pretty easy with your
backup program, but BACK UP YOUR CURRENT EMAIL SPOOLS FIRST - just in case.
Cyrus won't immediately see the new mailboxes once they've been
restored. You need to run 'reconstruct -r -f user.craig' (for example)
to force Cyrus to search for restored mailboxes and add them to the
mailboxes.db . That's a Terminal command, by the way, and may need to be
run as a special user - see the Apple documentation for details, as they
describe the reconstruct command there. The user may then need to
subscribe to the mailboxes using their email program before they're visible.
If you can't access the restored mailboxes - they appear, but don't work
in the email program - try deleting the cyrus.* files out of the
restored mailboxes ONLY. Then re-run the reconstruct command and see if
you have any luck.
Do not ever delete mailboxes using the Finder, unless they're definitely
not in the Cyrus mailboxes list. It will mess up your mailbox list and
confuse Cyrus. Basically, unless you just put the mailbox there using
the Finder (or Terminal) and haven't run reconstruct yet, it's not safe
to remove. You must instead use an email program or the Cyrus admin
interface to delete the mailbox - I don't know how Apple have done it
with OSX, whether there's a GUI tool or if you use good 'ol cyradm.
Oh - if you have problems at any stage, there's a good chance the file
permissions are wrong. In a normal Cyrus install all Cyrus files must be
owned by user 'cyrus' - and it's likely Apple has stuck to that. If your
restored mailboxes won't work you may have to change them so that
they're owned by the 'cyrus' user.
> Under OSX Panther, Cyrus puts incoming user mail in a private
> (hidden) spool folder, which nothing can open (as far as I can tell)
I expect it's accessable using the Terminal app, so long as you know
where it is. According to Apple documentation, the mail spools are
stored in '/var/spool/imap' just like a normal Cyrus install. DO NOT
MODIFY THIS FOLDER unless you know what you're doing.
Anyway, it's late and I need sleep. I hope I've been of some help.
More information about the Info-cyrus