Apache James Project

James has a modular architecture based on a rich set of modern and efficient components which provides at the end, complete, stable, secure and extendable Mail Servers running on the JVM. James is made of internal projects - Server, Mailet, Mailbox, Protocols, MPT - and of external projects – Hupa, Mime4J, jSieve, jSPF, jDKIM.

You can also read the wiki (discover who uses James,...)

Software Components

Developers looking for a modular mail platform on which to build can look at the modules and libraries used to compose James Server 3.0.

Internal Projects

The Apache James Mailet project collects products related to mailets (mail processing components analogous to servlets). These are independent of the James server and can be reused in any mailet container.

Apache James Protocols project delivers a lightweight, and highly extensible framework for mail protocols implementations. Protocols is coming with several implementations of popular mail protocols like:

  • SMTP
  • LMTP
  • POP3
  • IMAP
  • ManageSieve
  • JMAP

Apache James Mailbox features include the support of emails storage, indexing emails for research, quotas, an events system.

External Projects

Apache James Mime4J parses MIME typed documents (including - but not limited to - mail). APIs similar to DOM, SAX and pull parsers are exposed.

Apache James jSPF implements SPF. The jSPF library is pure Java SPF implementation. It was designed to match the current SPF-Specs of 2006-2009 (See RFC section). SPF is also knows as Sender Policy Framework. It was designed to detect email spoofing This is the solution if you ever was tired of getting spam from yourself. For more information see openspf website.

Apache James jSieve is a Java implementation of the Sieve mail filtering language defined by RFC 3028. jSieve is implemented as a language processor that can be plugged into any internet mail application to add Sieve support.

Apache James jDKIM implements DKIM. jDKIM is a DKIM implementation library written in Java. It provides both verification and signing and also provides Mailets for the Apache JAMES project.

Apache James MPT is a scripted functional test tool suitable for testing mail protocols.