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!