The Apache Software Foundation

Apache James Mime4J 0.7

April 06, 2011


The Apache James Project is happy to announce the release of version 0.7 of the Apache James Mime4J.

Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing styles are supported.

The 0.7 release brings another round of API enhancements, bug fixes and performance optimizations. A major effort has been put in code reorganization, separating parsing code from DOM manipulation code. Mime4J has been restructured into three separate modules: ‘core’, ‘dom’ and ‘storage’. The ‘core’ package provides an event-driven SAX style parser that relies on a callback mechanism to report parsing events such as the start of an entity header the start of a body, etc. The ‘dom’ package contains base/abstract classes and interfaces for MIME-DOM manipulation aiming to provide the base for a full featured traversable DOM. Per default the Mime4J DOM builder stores content of individual body parts in memory. The ‘storage’ package provides support for more complex storage backends such on-disk storage systems, overflow on max limit, or encrypted storage through JSSE API.

Mime4J 0.7 improves support for headless messages, malformed separation between headers and body and adds support for “obsolete” rfc822 syntax (e.g: “Header: " style). Parsing performance for quoted printable streams have been considerably improved. A "DecodeMonitor" object has been introduced in most code to define how to deal with malformed input (Lenient vs Strict behaviours). Mime4J 0.7 also provides LenientFieldParser as an alternative to DefaultFieldParser when a higher degree of tolerance to non-severe MIME field format violations is desired.

Read the release notes