MIME Browser Released

As I threatened after my unsuccessful Quest for EML Viewers, I wrote my own little cross-platform viewer in JavaFX. I called it “MIME Browser” as that’s the only generically obvious name that wasn’t taken yet. You can find more information and download both a precompiled executable and the complete source code at the new project page.

There are still some features missing in this first release, notably any kind of search functionality. I plan to add that in the next release, along with fixing any bugs that might crop up. edit: This feature and much else has been added in subsequent versions, please see the WhatsNew file for a complete list with links to newer blog posts.

Notes for Developers

While building this project I noticed a few things that might be of interest for JavaFX or JavaMail developers. The ReadMe file documents them all in greater detail.

As expected, JavaFX 2.2 still has some shortcomings. The particular ones I encountered were lack of support for more than three mouse buttons; failure to scale WebView scroll bars with Windows DPI settings; and inability to pre-populate the FileChooser dialog with a file name.

I’m using the convenient and free JavaMail library to parse MIME messages. JavaMail does its job quite nicely, but I had to manually correct one somewhat obscure failure case. When text/xml attachments are encoded as Base64 but don’t specify a charset, JavaMail evidently assumes an 8-bit ASCII/ANSI encoding for the original text. This will produce garbled text when a Unicode encoding was actually used. I’m sniffing byte-order marks in order to correctly re-encode the text when that happens.

Finally, the user interface icons are provided by Dave Gandy’s Font Awesome. No complaints there, it’s a very generous collection of clear & stylish icons that can be freely embedded in any application. Give it a try if you need good cross-platform UI icons!

8 thoughts on “MIME Browser Released

  1. Stewart Fernandez

    Hi

    Love the program but one thing, could it be possible to make a version where i could delete emails within the program itself?

    Reply
    1. Christoph Nahr Post author

      Thanks for your feedback! Originally I left out that feature because the Java standard library cannot move files to the recycle bin, and I didn’t want users to accidentally lose emails forever. However, some digging reveals the JNA library which should allow safe file deletion on any OS that has a recycle bin. I’ll take a note to add this feature in a future version.

      Reply
  2. chaiavihaiavi

    Thanks mate.

    Great little tool, it read my EML file and even managed to save the attched PDF file it had attached!

    Nice work, Nice GUI, I really need to learn JavaFX.

    ANd I liked your use of Awesone font.

    Reply
  3. Mike

    Very nice tool!!! I’m using it to read through many emails from a seperate spam filter that we have. If you’re looking for additonal features to potentially add, I would reccomend adding the capability for multi-selecting .emls in the Entries window, and then adding the option to export the entire message contents of those selected to a single file (.doc, txt, rtf, much like you do with the save button).

    If you add this capability, please let me know!!

    Great Work!

    /\/\||<3

    Reply
    1. Christoph Nahr Post author

      Creating a multi-message report sounds useful, but it’s probably a bit beyond this project. Aside from character set corrections I’m not currently doing any file format conversions — messages & attachments are shown or saved in the exact same format that comes with the email. Concatenating multiple emails as plain text should work, but I’d still have to strip HTML tags from those message bodies that only offer text/html format. I’ll have to think about that. Thanks for your feedback!

      Reply
  4. David

    Awesome. Thanks. We’re going to try it on a remote desktop. For us, emails associated with a specific research project normally get archived to .pst, and then anyone wanting access gets a copy of the relevant .pst(s). It works, but with obvious drawbacks. If you are up for more developments, and there is demand, then two things would make a difference for us: a) TO and FROM columns for sorting, b) the ability to save attachments with default original file names. Although we generally remove attachments and put them in an appropriate place on receiving emails, so the second thing is much less useful. Thanks though, I had been head scratching this one for ages and was almost about to install Thunderbird on a remote desktop (using local folders but no email account) – it’s still vaguely an option I guess.

    Reply
    1. Christoph Nahr Post author

      Sorting the message list by To/From would require reading the contents of each message before the list is composed. That’s already on the wish list for showing message titles rather than file names. I’m not sure this is feasible, though, due to performance considerations. Should I implement it, adding sortable To/From columns would be little extra effort.

      Defaulting to the original attachment file names is definitely desirable but currently not possible because JavaFX doesn’t allow default file names in save dialogs. I’ll certainly fix this once a new JavaFX version addresses this oversight. Thanks for your feedback!

      Reply
    2. Christoph Nahr Post author

      Wouldn’t you know, JavaFX actually did add the ability to preset a file name in the Open/Save dialog… and apparently right after I had originally released MIME Browser. If that feature was in any JavaFX change log I must have overlooked it. At any rate, I just tested it and it’s in the next release.

      Reply

Leave a Reply