Comparison to Apache's James

There is a large overlap of functionality between this project and Apache's James. The developers of Jamama are dedicating hundreds of hours, however, because they are unsatisfied with James. In our opinion, the main goal of James is to showcase the Avalon framework and, in typical Apache project fashion, to implement Java methodologies and Design Patterns for the sake of it. As a particular example, the James project wants to have a servlet-like development model for mail routing, so in order to accommodate that, they have to separate filtering from message modification and processing-- the problem is, these tasks must be performed together if they are to be done right.

One direct consequence of the James projects' infatuation for "Mailets" is, they "accept" all Spam and only filter/route completely accepted messages. They somehow twist this extreme limitation to sound like a benefit by calling James a "black hole for Spam", because James servers have to use their processing and RAM power to consume all Spam sent to them. Users of Exim have understood for years that the best strategy is to handle routing at the earliest point possible. The Jamama "Router" interface is much more powerful than the Mailet interface, but the lifecycle was not designed to emulate the Servlet lifecycle. Another symptom of the inability to implement useful features because they are too busy with Design Patterns, is the lack of adoption of Avalon JMX capabilities. To summarize: Jamama is about using Extreme Programming to accommodate the email problem domain. James is about using the email problem domain to accommodate Avalon and a score of Design patterns.