Although Eudora 6.2.4 has taken some body blows from Mac OS X 10.5 Leopard, the email program largely keeps on ticking. That's not to say that it's as stable as it used to be, and I'm experiencing more crashes and oddities than in the past. Most recently, I was doing something with an in-progress message in the Out box and Eudora got confused, started chewing CPU time, and wouldn't respond to the keyboard or mouse. After a while I gave up and force quit the program by Option-clicking Eudora's Dock icon and choosing Force Quit.
Unfortunately, when I relaunched Eudora, all the messages in my Out mailbox since 14-Feb-08 showed a recovered status (a ?) instead of the correct status, and all of Eudora's automatically saved versions over the few days were visible. (When you use Eudora's auto-save functionality, it saves copies of your message as you type, but doesn't erase interim versions until you compact the mailbox, which happens automatically at various times and can be invoked manually by clicking the mailbox size box in the lower left corner of a mailbox window. To turn on auto-save on 2 minute intervals, click this x-eudora-setting:11520=120 URL within Eudora.)
But when I started checking out some of the interim versions of messages, it became clear that the problem went deeper, since message summaries for the recovered messages no longer matched their contents, and message contents no longer even filled in the appropriate fields in a message window. Clearly the mailbox's table of contents had become corrupted. In other programs, such a problem might require relying on a special database utility. But this is Eudora, which was developed when text files and resource forks ruled the Earth.
Long ago, Eudora creator Steve Dorner had told me how to fix a corrupted mailbox, and it's something that anyone can do by following these steps:
- Quit Eudora.
- Duplicate the Out box file, which is stored in ~/Documents/Eudora Folder/Mail Folder by default, so you have a backup copy. If you're nervous, make another copy on the Desktop. You can throw these out when you're done if everything goes well.
- Open the Out box file using a plain text editor like the free TextWrangler from Bare Bones. It may be a bit slow to work with a very large mailbox (mine was over 30 MB), but it should be able to handle the file.
- Copy the first line of the file, which should look something like the line below, and paste it on a line by itself at the very end of the file.
- Save the file, being absolutely certain to save as plain text with Mac line breaks (likely the default in a plain text editor like TextWrangler).
- Launch Eudora again, and open the Out mailbox.
From ???@??? Fri Jun 16 22:52:45 2006
In theory, that should cause Eudora to realize that the table of contents, usually stored in the file's resource fork, is corrupt and to rebuild it by looking at the mailbox data itself. You may lose Eudora-specific data such as status and label, since that information exists only in the table of contents, but that's much less of a worry than not being able to access the messages at all. If it works for you, great, and you're done.
However, in my case, although this fix solved the problem of the messages not matching their message summaries, all the dates on the problematic messages were set to the same date. That wouldn't have been the end of the world, but I was unhappy about it, since I like to know when I sent a message. Referring to some more advice from Steve Dorner, I followed these steps (I used Tiger, and I expect they'd work in Leopard, but I'm less sure of Panther):
- Option-click the ? status for one of the messed-up messages to select all of them (insert obligatory "I can't believe other programs lack this insanely useful shortcut!" comment).
- Transfer the selected messages to a new temporary mailbox by choosing Transfer > New. Call the new mailbox tempBox.
- Quit Eudora.
- Now you need to delete the resource fork from the tempBox mailbox. Run Terminal and navigate to the folder containing the tempBox mailbox. (The easiest way to do this is to type "cd" and a space, drag the Mail Folder containing tempBox to the Terminal window, and then press Return.) Now enter this command:
- Launch Eudora again, open the tempBox mailbox to rebuild the table of contents, and verify that the dates have been fixed.
- Select all the messages and transfer them back to the Out box. Once they're back (Eudora may warn about losing headers or images that can't be found - don't worry about it), Option-click the unsent status (a hyphen) for the transferred messages to select all of them, click the status for one of them, and choose Sent from the pop-up menu to reset them all to the Sent status (a checkmark). (If you were performing this task on a mailbox other than Out, they'd all come in with an unread status (a bullet), and you could change that to read or replied or whatever). You can delete the empty tempBox mailbox.
- Lastly, go through and manually delete any interim versions of auto-saved messages. If you see four messages with the same Subject line, delete the first three, since the last one is the final version.
cp /dev/null tempBox/rsrc
Some users have reported troubles with Eudora's tables of contents when running under Leopard, and they've worked around the problem by switching from Eudora's default method of storing the table of contents in the resource fork of each mailbox file to storing it in an old-style .toc file. You can toggle that setting in Eudora's Miscellaneous settings panel; there doesn't seem to be any harm in trying it, although Eudora will complain if you have any mailboxes with names longer than 27 characters, since the old-style .toc files date from the time when filenames couldn't be more than 31 characters. Just rename those mailboxes in the Finder when Eudora isn't running.
I tried this workaround but almost immediately ran into a problem where reading messages in certain mailboxes wouldn't update the status of those messages. It's possible I needed to delete the resource forks in those mailboxes manually, but unless I start having a lot more troubles, I'm going to stick with the normal resource fork approach to storing tables of contents.
For those of you who aren't happy with the workflow changes required by other email programs and are sticking with Eudora 6.2.4 as long as possible, I hope these instructions will keep your mailboxes healthy. But remember, there's no substitute for frequent backups, and if you're running Leopard, you should be backing up via at least Time Machine as well.