EUDORA RESCUE 0.7 README.TXT
Eudora Rescue and all included files are Copyright 2003-2022 by Qwerky. All rights reserved worldwide.
Eudora Rescue is free for personal, private use only. For full details and for other uses, see the included LICENSE.TXT file.
This file contains the following sections:
Eudora Rescue is a MS Windows command-line utility designed to convert Eudora mailbox files to standard mbox format, suitable for import into many other e-mail clients, such as the free Mozilla Thunderbird.
Eudora Rescue can make use of Eudora Table-of-Content (*.toc) files in order to transfer messages' status along with the messages, and make use of Eudora descmap.pce files to obtain actual mailbox/folder names. And, Eudora Rescue is a stand-alone program, requiring no additional libraries or other software.
EUDRESCU.EXE [79,872] the Eudora Rescue 0.7 executable.
README.TXT [40,869] the Eudora Rescue 0.7 documentation (this file).
LICENSE.TXT [ 1,319] the Eudora Rescue 0.7 license and disclaimer.
Eudora Rescue requires no installation or additional files; simply unzip the archive and run the program eudrescu.exe. Eudora Rescue creates no additional files, other than the data files it outputs. To uninstall, simply delete the files extracted from the archive.
Eudora Rescue will read all .mbx files in the input directory tree, applying to each message all of the conversions specified by the given options, and write the output to new files in the output directory tree. Output files will have the same name as the corresponding input files, but with a user-specified extension. Directories within the input tree will be created in the output tree, if they do not exist. If no output directory is specified, no output files will be created; Eudora Rescue will simply report the results, exactly as if conversion were occurring.
To convert your Eudora mail tree to standard mbox format for import into
another e-mail client, you might use a command line such as:
If no output is specified with -o, then Eudora Rescue will simply report
the results, without creating any output files or directories. So,
Message fragments, lost messages recovered, and fixed messages are all independent, though a message or a fragment may be both recovered and fixed, depending on the options specified.
If all repair-type options are turned off, then the number of messages fixed will be zero for every mailbox. If any option is enabled which applies to all messages, such as -m to add the X-Mozilla-Status(2): headers to every message, then the number of fixed messages will be the same as the total number of messages.
The sub-totals for each directory will be reported as each is completed, and the totals for all mailboxes will be reported at the end of the run. The sub-totals and totals report the number of mailboxes, followed by the other four numbers mentioned above.
At the end of the run, the time of the run will be reported.
Using the -vq (quiet) option will cause Eudora Rescue to report only
errors and warnings, rather than the full output. So,
The Eudora Rescue command line is:
Options are, of course, optional. They may be given in upper or lower
case, may appear anywhere on the command line, and may be specified in
multiple arguments or combined, though certain options must be the last
option in an argument, as noted. All options are evaluated before any
<dir> arguments. Options are evaluated from left to right, so if an
option appears more than once on the command line, the last occurrence
will take effect. Each <option> argument may be prefaced by either a
dash (-) or slash (/) character. Many options take an additional
optional plus (+) or minus (-) character following the option character
itself, specifying that the option be turned on or off, respectively.
If such an option is given without either a plus or minus, the option is
turned on. Some options allow an optional equals (=) character.
Available options (with default values) are:
Inserts a blank line between messages if there is not one, as per the mbox(5) specification.
-c[+|-] (-c+) Content-type: Header
Inserts a Content-type: header if there is not one, or corrects it of Eudora's peculiarities if there is. Gone are multipart/related; multipart/alternative; multipart/mixed; boundary= etc., replaced by "text/plain; charset=ISO-8859-1" or "text/html; charset=ISO-8859-1".
-d[+|-] (-d+) Date: Header
Inserts a Date: header if there is not one. Eudora's outgoing messages in the mailbox do not have a Date: header. The date used is taken from the From_ (message delimiter) line, which doesn't have a timezone; therefore the timezone specified by -z is added.
-e[+|-] (-e-) Received: Header
Inserts a Received: header if there is not already at least one, for the sake of some clients which may require one in every message, even outgoing ones. Eudora's outgoing messages in the mailbox do not have a Received: header. The date used is taken from the Date: header if one exists; otherwise it is taken from the From_ (message delimiter) line, which doesn't have a timezone; therefore the timezone specified by -z is added.
-f<->|<[=]0|n|3|u|4|t|5|e> (-ft) From_ Address
Eudora's message delimiter usually (but not always) has the form: From ???@??? <date>. -f replaces the address argument (???@???) with a Unix format From <proper@address> <date> (-f3 or -fu), with a Thunderbird format From - <date> (-f4 or -ft), with a Eudora format From ???@??? <date> (-f5 or -fe), or does no replacement (-f0, -fn or -f-).
-g[+|-] (-g+) Tag Removal
Removes the Eudora-specific <x-html>, </x-html>, <x-flowed>, and </x-flowed> tags within the message body.
-h, -? Help
Shows the program's usage and exits.
-m[+|-] (-m+) X-Mozilla-Status(2): Headers
-n[+|-] (-n-) X-Imported: Header
Inserts an 'X-Imported: from Eudora by Eudora Rescue 0.7' header, making imported messages easily identifiable for filtering.
-o[-|+][[=]path] (-o-) Output Directory
-p[+|-] (-p-) X-Persona: Header
Removes the Eudora-specific X-Persona: header, which contains information that could be seen as a security concern by some.
-q[+|-] (-q+) From_ Quoting
When any line beginning with the form "From ", ">From ", ">>From ", etc., in any case (upper, lower, mixed) is found within the body of a message, that line will have a '>' character prepended. This ensures that the line will not be mistaken for a message delimiter line, which also begins with "From ". It is the job of the program accessing the message database to remove (unquote) one '>' character from each of these lines. If an already quoted From_ line were not additionally quoted, it would be impossible to tell whether or not that line had been quoted in the original message.
-r[+|-] (-r+) Recurse Through Sub-directories
Recurse through mail subdirectories (*.fol) of the specified input directory, creating matching directories in the output directory, if they don't exist. -r++ will recurse through all subdirectories, rather than just mail subdirectories.
-s[+|-] (-s+) Spinner
Turn the spinner on or off. The spinner is a progress indicator, useful for on-screen monitoring of the program's progress, but it makes the report appear messy when sent to a file.
-t<->|<[=]0|n|1|p|2|a> (-tp) Toc File
Use the Eudora Table-of-Contents (.toc) file to obtain message status always (-t2 or -ta), when possible (-t1 or -tp), or never (-t0, -tn or -t-). -tp will convert each mailbox, using its .toc file if one exists, or warning if one does not exist. -t2 will terminate if a mailbox is found for which no .toc file exists.
-v<->|<[=]0|s|1|q|2|n> (-vn) Vocal Mode
Specifies how vocal Eudora Rescue should be:
-x<->|<[=][.][ext]> (-x-) Extension
Specifies the three-character extension to give each output file. If combined in an argument with other options, it must be the last option in the argument only if it specifies an extension, not if it takes the -x- form. -x- specifies that the extension is not to be replaced; output files will have the same extension as input files. '-x[=].' specifies that the output files' extension be replaced with a null extension, i.e. output files will have no extension. The default is no replacement extension (-x-).
-z[=]<+|-><tzos> (-z-0500) Timezone Offset
The value returned by Eudora Rescue on exit may be one of the following exit codes:
Convert all .mbx files in the C:\EUDORA tree, to ..\CONVERTD\, creating directories as needed, removing X-Persona: headers, using a timezone offset of +0100.
Convert all .mbx files in the D:\EMIAL\ tree to the current directory, creating directories as needed, quietly, using a timezone offset of -1000, inserting Received: headers but not blank lines, and giving each output file a .mbx extension.
convert all .mbx files in \MAIL to \NEWMAIL, without recursion.
Report the conversion of all .mbx files in the D:\EUDORA tree, and send the report to MAILRPT.TXT in the current directory. No conversion takes place, since no output is specified.
Report all errors and warnings in converting the D:\EUDORA\MAIL tree without doing any conversion.
Eudora's descmap.pce files were originally intended to provide a mapping from long mailbox names, to 8.3 filenames. With Win32's long filenames, such a mapping is no longer required, though many Eudora installations may still have long mailbox names, created before long filenames were available, mapped to 8.3 filenames. But, the descmap.pce files serve an additional purpose: to map to legal long filenames, long mailbox names containing characters which are not legal in a filename. For example, "OS/2 Users' Group" is a valid Eudora mailbox name, but not a legal Win32 filename, since Win32 filenames cannot contain slashes '/'.
Win32 long filenames may not contain the characters '?', '"', '/', '\', '<', '>', '*', '|', or ':'. Additionally, Win32 long filenames may not end with a period '.' or space ' ' character.
Eudora Rescue uses Eudora's descmap.pce files, when found, to generate output long filenames matching the mailbox names, replacing each illegal filename character by an underscore '_' character. So the above example would become "OS_2 User' Group", "John Q. Public." would become "John Q. Public_", and so on.
When a message in a Eudora mailbox is deleted, it is not immediately removed from the mailbox, it is simply removed from the .toc file. Only when the mailbox is compacted does the actual message get removed. If, before the mailbox is compacted, the .toc file is rebuilt in Eudora, messages which had been deleted after the mailbox was last compacted, will be restored.
When converting with Eudora Rescue using .toc files, deleted messages will not be converted even if the Eudora mailbox has not been compacted, unless the .toc file has been rebuilt in Eudora since the messages were deleted, or unless a mailbox file has no matching .toc file.
When converting with Eudora Rescue without the use of .toc files, all messages in the mailbox will be converted, including those marked for deletion since the mailbox was last compacted, since apart from the .toc file there is no way to know which had been marked for deletion.
Unless recovery of deleted messages is intended, Eudora mailboxes should be compacted using Eudora's 'Compact Mailboxes' command before using Eudora Rescue.
Eudora has a habit of placing many messages in its mailboxes without proper demarcation. As long as the message has a proper .toc record, Eudora will make use of it. But, when a .toc file is rebuilt, Eudora seems itself unable to find such messages, so they will not receive a proper .toc record. Eudora has, in effect, lost them, though they remain in the mailbox, in most cases even after compacting.
Reading comp.mail.eudora.ms-windows, one will frequently see given the common advice, "delete the .toc file and let Eudora rebuild it." This is very bad advice, except where strictly necessary, as rebuilding the .toc will not only lose all message status for that mailbox, it will also lose those messages themselves which are not properly demarcated.
Eudora Rescue is able to recover such lost messages, and gives each such
message an X-Recovered: header to aid in filtering them. To observe
this, one could run Eudora Rescue on a Eudora mail tree without creating
any output files, first with use of .toc files, then again without,
optionally sending each report to a file, and compare the resulting
The number of recovered messages when run with .toc files, will be the number of improperly demarcated messages for which Eudora has no .toc record, perhaps due to .toc files being rebuilt; messages which Eudora has already lost.
When run against my archives of 62,121 messages without .toc files, the number of recovered messages reported was 3,687. When run with .toc files, the number was 5. Since I avoid rebuilding .toc files unless it is unavoidable, that is a reasonable number. For other users, the percentage may be much higher.
It should be noted that, as it is impossible to be one-hundred percent certain about Eudora's non-standard message delimiters, that some false positives are likely. In my case, of those 3,687 reported recovered messages, 3 were false positives; a fairly low percentage. The alternative, if one wanted no false positives, would be to not recover lost messages at all.
Occasionally a message within a Eudora mailbox may be damaged, such that the message delimiter (From_) line is lost, along with some unspecified additional number of lines of the message. What remains is a message fragment. Through what agency this occurs, I do not know. Perhaps it is a result of an interruption while Eudora is writing to a mailbox, as in a power failure.
As long as the .toc file still has a record for that message, the remaining fragment may be recovered by Eudora Rescue, which will create a new From_ line, using the current date and time. Eudora Rescue also gives each such message an X-Fragment: header to aid in filtering them.
My archives had only two such message fragments.
Thunderbird, as of version 1.0, does a pretty good job of importing Eudora settings, addresses, and messages, including attachments, all by itself. It doesn't fix as many Eudora problems as does Eudora Rescue, and most importantly, it doesn't maintain message status. Eudora Rescue does those things well, but does not handle attachments, at least at this time. The best Eudora to Thunderbird migration path is to use a combination of the two, as outlined in the procedure below.
Before beginning, it is helpful to understand some of the reasons for the steps in the procedure. Firstly, the locations of the Eudora mail directory, attachments directory, and embedded directory, where Eudora keeps its mailbox and .toc files, its attachments, and its embedded images, is found in the Windows registry. Secondly, it is in those locations specified by the registry, that Thunderbird will look for those Eudora files. Thunderbird does not give any choice in the matter.
So the idea behind the procedure is to make Thunderbird see the Eudora Rescue converted directory as being the Eudora mail directory, which may also require making a copy of the attachments and/or embedded directories. To do so, you must yourself know where those directories are located. Also note that doing this will require as much or more free disk space as is presently taken up by your Eudora mail, attachments, and embedded directories combined, and it must be available on the drive on which the Eudora mail directory resides. This can be a very large amount, so make sure you have enough space before beginning.
In the steps below, Mail\ is the mail directory, Attach\ is the
attachments directory, and Embedded\ is the embedded directory;
substitute for each, your directory's name. Remember that if a file or
directory name contains spaces, that the entire argument containing such
a name must be placed within quotes on the command line. Also, note in
the examples below, that the entire command line is one single line, not
two or more lines as may be shown to fit the width of this document.
Your directory tree may have one of two forms: the attachments and/or
embedded directories may or may not be underneath (inside) the mail
directory, as shown:
Note that Part D is optional.
In January of 1996 (more than nine years ago now), I began using Eudora for my e-mail, beginning with version 1.5.2. The light version was free and quite capable, and not restricted in any way. I began to frequent the newsgroup comp.mail.eudora.ms-windows. As time passed I upgraded to newer versions, buying Eudora Pro and ending up at version 4.1. During that time, a disturbing trend began to emerge: Qualcomm had its own agenda, and users were oft-times ignored. Witness that fact that one of the most frequently requested features, threading is still not available to Eudora users to this day, and perhaps it never will be, despite being available in many, many other e-mail clients.
But worst of all, after version 4.1 Eudora became ad-sponsored software, which is only one tiny (and often blurred) step away from spyware and every other form of malware. That is completely unacceptable! But by this time, I had more archived e-mails than I could possibly consider leaving behind, and to switch to another client was made exceedingly difficult by Qualcomm's use of a not-quite-standard mbox format, coupled with keeping messages and their status in separate files. Many clients were able to import Eudora's message text (and sometimes not even that properly), but none I found were able to maintain the messages' status.
So for years I remained trapped with 4.1, longing for missing features. And judging by postings in various forums, there were many others in the same boat. Some fine scripts have appeared to assist in migrating from Eudora, written in Perl or in Python, but they require the user to have additional software installed. Finally, I decided to tackle the job of writing a stand-alone utility designed for one purpose: to rescue users, including myself, from the chains of Eudora!
At the time of this test, my Eudora e-mail archives consisted of 61,727 messages in 400 mailboxes. The conversion was done on a 1.5 GHz Athlon system with 512 MB of RAM, which was re-booted between timings to ensure that no e-mail remained in memory.
Mozilla Thunderbird 1.0 imported the archives in 59 minutes, 11 seconds. Eudora Rescue 0.5 converted the same archives in 1 minute, 43 seconds.
But that's not the whole story. Thunderbird's import time includes not only the time to convert the mailboxes, but also the time required to create its summary (.msf) files. When using Eudora Rescue, only the converted mailbox files are present. So Thunderbird will still create its summary files as each mailbox is opened within Thunderbird, which will take additional time.
And that's still not the whole story. While Thunderbird did a good job of importing the Eudora e-mail, it did not fix as many problems as did Eudora Rescue. But the biggest factor is that Thunderbird could not maintain the messages' status, which Eudora Rescue does very well.
So the best migration is achieved by using Eudora Rescue to convert the Eudora mailboxes, using Thunderbird to import those converted mailboxes, then using Thunderbird to import Eudora's settings and addresses.
Eudora Rescue converts Eudora mailbox (.mbx) files [together with Eudora Table-of-Content (.toc) files] mailbox-by-mailbox, message-by-message, and line-by-line, performing all specified conversions along the way. For example, if a message does not contain a Date: header, one is added, using the date in the From_ (message delimiter) header, converted to standard format. Similarly, if a message does not contain any Received: headers, one is optionally added, using the date from the Date: header, or from the From_ header if there is no Date: header.
In Eudora, sent messages contain neither a Date: header nor a Received: header, which creates problems for other e-mail clients when importing from Eudora mailboxes. However, all messages in a Eudora mailbox file do contain a date in the From_ header, which is used by Eudora Rescue when adding a Date: header, or when adding a Received: header where there is no Date: header. [Note that the From_ header (with no colon) referred to here is the message delimiter, and is not the same as the From: header.]
A properly formed mbox message delimiter (From_ header) is defined as a
line of the form:
Eudora Rescue is flexible in interpreting message delimiters which are not mbox compliant.
When a message does not contain a Date: header or a Received: header,
which is true of all sent messages in a Eudora mailbox, Eudora Rescue
converts the date in the From_ header (message delimiter) line to a
standard Date: header or a Received: header of the form:
Additionally, messages in Eudora mailboxes are From_ quoted only if they take on the form of the Eudora-specific message delimiter: From ???@??? <date/time>. Even then they are quoted only one time, but are quoted even before being sent, and the original message is afterwards displayed quoted, as though entered that way by the user; i.e. it is impossible to send such a line unquoted. Eudora Rescue performs proper From_ quoting.
Worse, Eudora handles html e-mail in a non-standard way, adds tags such as <x-html> and <x-flowed>, and badly mangles the Content-type: header, so that such messages will not be properly displayed when imported by another client. Worse still, messages' status are not available at all within the mailbox, and are very difficult for another client to import. Eudora Rescue fixes these and a host of other Eudora issues.
Version 0.7 2005/04/05
Version 0.6 2005/03/18
Version 0.5 2005/02/02 First public release of Eudora Rescue.
Eudora Rescue is free for personal, private use only. For full details and for other uses, see the included LICENSE.TXT file.
Eudora Rescue is provided as is, without warranty of any kind. There are no exclusions or limitations, period. The author will not be held liable for anything! The user assumes full responsibility. If you don't like it, then DON'T USE IT!
For contact information, please see the contact page.
Copyright © 2003-2022 by Qwerky. All rights reserved worldwide.
This page is: http://qwerky.50webs.com/eudorarescue/readme.htm. Last Modified 2022 May 16.