Eml vs msg

From Zarafa wiki

Jump to: navigation, search

When debugging with emails and Zarafa sometimes it comes in handy to have the eml file. In some cases sysadmins start debugging with msg files, which are NOT the same as eml files. This document explains the difference between eml files and msg files.


There really is a large difference between an eml file and an msg file:


The .eml file format is a plaintext MIME (rfc822) file format for storing emails, e.g. used by MS Outlook Express, Windows Mail and Mozilla Thunderbird. Instead, .msg is a compound file binary format based on Microsoft’s Outlook MAPI.


You can generate an msg file by exporting an email from Outlook to file (e.g. simply by dragging the email to your desktop). This msg file has some downsides however, the most important downside is that the msg file has already been touched by zarafa: When the email comes in the MTA sends the email to the dagent, the dagent will break down the email in a lot of different MAPI objects before it stores the email in the mailstore.


An eml file is untouched by Zarafa. When debugging a problem with an email, you would want to know where the problem exactly sits, e.g. there could be a bug in the dagent while breaking down a certain email. Debugging with a msg file will be useless in most of these cases, what we really want the eml file which is still untouched by Zarafa.


Generating an eml file is somewhat more difficult than generating a msg file. There are several ways however to generate an eml file:

  • Through procmail: Just save the file to disk with procmail before it delivers to the dagent.
  • Through the MTA: E.g. postfix has an option "always_bcc", which you can misuse to always bcc an email to a user with an mbox mailbox.
  • Through zarafa-dagent: In ZCP version 7 the dagent has an option which will enable you to save incoming emails to an eml file in a certain directory. Check the config options "log_raw_message" and "log_raw_message_path" in the zarafa-dagent.cfg manpage.
Personal tools