Eudora, Netscape, Microsoft - mailbox formats

Can anyone give me a description of the file formats for the mail boxes used by a) Eudora  b) Netscape messenger c) MS Internet mail?

If anyone has a complete answer I will raise the points to 250.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Chris: Is this a test?  Your question is kind of broad, what do you mean by file format description, what do you want to know?
ChrrrisAuthor Commented:
No, it's not a test. I need to know how the abovementioned mailbox files are built up. I.e. what are the various fields in them? I need to read the following information:

For inboxes:

1. Sender's full name
2. Sender's email address  
3. Message ID
4. Email address it was received at
5. Date
6. Subject
7. Body

Four outboxes:

1. Receiver's full name
2. Receiver's email address  
3. Message ID
4. Email address it was sent from
5. Date
6. Subject
7. Body

I realise that this question may seem rather odd, but there must be an answer for it. I suppose I just want general ideas on how to do this, and maybe I shouldn't have posted it in this group.

Well, did you get a clearer picture of what I need now?

I'm not sure you're in the wrong group, just still a little vague on you objective.
there are utilities for converting one format to another.
Is that what your after?
Cloud Class® Course: Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

That's not an answer to your question.
The Eudora and Netscape file formats are simillar. It's just the extension Eudora adds that differs. If you rename an Eudora mailbox cutting off completely the extension, you will end up with a mailbox that Netscape can read (and vice versa)
This can narrow your question to two formats (NS and ME)
ChrrrisAuthor Commented:
smeebud, I need to have the conversion functionality built into a piece of software that I am developing. For copyright reasons I need to write that code myself! That's why I am asking about the formats.

stratari, your comment was part of the answer! Keep up the good work.
Okie Dokie Smeebud, this one's all yours guy, right up your alley!
Couldn't you just ask Microsoft, Netscape, and Qualcomm about this?
ChrrrisAuthor Commented:
Well, I chose to come here for help instead. I am sure I will learn more, and get a faster answer this way!

It's RFC-822, Unix mailbox format:

"From " at the beginning of a line is a message delimiter (after the first message you can search for "\nFrom " for subsequent messages).

Sender's name and email address--found in the From: line.  There are two generally accepted formats here:
  real name <email address>
  email address (real name)

Message ID--found in the Message-ID: line.

Recipient--found in To: or Cc: line.  

Date--found in Date: line

Subject--found in Subject: line

Body--starts after first blank line.  Ends at first "\nFrom ".   Note that if "\nFrom " is found in a message body, it is usually changed to "\n>From ".  It's a mail reader's responsibility to change it back before display.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
ChrrrisAuthor Commented:
Thanks gwalter! Your answer seems quite reasonable. I will get back to you with the marks once I tried it out.

By the way, are all three of the above mailclients using the RFC-822 format?
Yes and no:

Netscape and Eudora -- YES

Microsoft -- NO (big surprise there).

Microsoft is not too far from RFC-822.  It doesn't have the "\nFrom " delimiter, but the other headers are there (mainly because they're put there by SMTP before the note ever gets there).

If you need to process Microsoft, too, you'll have to decode their index file format.  For example, the inbox is represented by "Inbox.mbx" and "Inbox.idx".  The *.mbx files are the mailboxes themselves, and the *.idx files are indexes into them for individual messages, since there are no message delimiters.

I'll decode the index file for the 250 points you promised ;)

ChrrrisAuthor Commented:
Ok, points raised. Thanks for great help, gwalters!
ChrrrisAuthor Commented:
Oh, I ran out of points there. I will have to get some more before I raise to 250. Stay tuned...
Here's the Microsoft information:

You can ignore the idx file; all the info you need is in the mbx file.

Like I said before, everything works as it does in RFC-822 except for determining the beginning and end of messages, due to the lack of the proper delimiter.  Here's how the mbx file works:

It begins with an 84-byte header.  If a file begins with "JMF6", you can safely assume it's Microsoft, and not Netscape or Eudora.  Here's the header:
bytes 0-3: "JMF6"
      4-7: ??
      8-11: number of messages in file
      12-15: last used message number
      16-19: size of this file in bytes
      20-83: ??

Each message starts with a header (Microsoft's header, as opposed to RFC-822 header).
0-3: in hex: 007F007F (possibly not a guarantee of a delimiter,
     unlike "\nFrom ", so it's best to process each message).
4-7: message number
8-11: total size of message (including this header, message text,       and padding)
12-15: size of message that follows (just message text)
16-??: the message itself; number of bytes is found 12-15
??-??: between 0 and 3 bytes of zeros for padding, to make total
       message size multiple of four bytes.

All the four-byte integers above are least significant first.  In other words, a number from my inbox for the size of a message is as follows:
D5 07 00 00
which means 2005 in decimal.

Good luck!

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows OS

From novice to tech pro — start learning today.