— Software

MSGConvert: A .MSG to mbox converter


I wrote this to be able to convert some .MSG files I had lying around. These files are produced by some of Microsoft's e-mail programs, and I couldn't read them on my home machines, which run Linux.

Originally, I had only six of these files to base my program on. However, several people sent me .MSG files that my program failed to convert (Thanks!), or other feedback, so I've been able to make some improvements. If you have a file that my latest version fails to handle properly, feel free to drop me a line, preferably including the offending .MSG file. You can also file a bug in the CPAN bug tracker or the GitHub bug tracker.

If you have any questions, first take a look at the FAQ.


To use it, run:

perl -w YourMessage.msg

This will produce a file YourMessage.mime containing the message in RFC822 format. The program will complain about unrecognized OLE parts and other problems on stderr. If you supply the option --verbose, it will also tell you what OLE parts it knows about but doesn't use, and what I think they are. The option --help will make it print some usage information.

You can also let MSGConvert deliver all .MSG files in one mbox file using --mbox, like so (assuming you made executable): --mbox some-mbox-file *.msg


The following instructions should work generally on any Unix-like system with a reasonably new Perl installed.

On Debian and Ubuntu, try the following:


For the latest source code, go to MSGConvert on GitHub and Email::Outlook::Message on GitHub.

Known Bugs/Issues

Not all data that's in the .MSG file is converted. There simply are some parts whose meaning escapes me. However, most things are converted correctly by now, including plain text, HTML and RTF-formatted message bodies.

Attachments with Apple-style resource forks, as well as PGP-signed email is known not to be converted properly.