Available packaging options

James components are assembled in various way, called packaging.

    The packaging you choose will influence:
  • Your java requirement
  • The protocol the mail server supports
  • The components you can use

Thus, one must carefully choose his packaging.

    To help you doing this, here is a list of available packages:
  • Spring: Allows you to choose across various available implementations for each component. Requires more configuration effort.
  • Cassandra-guice: Ships a James server storing emails in Cassandra and index them in ElasticSearch.
  • Cassandra-guice-ldap: Ships a James server storing emails in Cassandra and index them in ElasticSearch. User are authenticated against a LDAP server.
  • Jpa-Guice: Ships a James server storing emails in a SQL database (derby by default) accessed with JPA and Lucene to index emails.
  • Jpa-Smtp: A tiny SMTP server shiped without mailbox, using SQL database to store data, accessed by JPA.

Note: Especially using Guice, one can easily define new modules for existing James components, as well as for third party code. Note that building your own combination of components will lead to an untested and unsupported server.

Support matrix

Packaging Spring Cassandra-guice Cassandra-ldap-guice Jpa-guice Jpa-smtp
IoC framework Spring Guice Guice Guice Guice
Java version Java 6 Java 8 Java 8 Java 8 Java 8
Docker image Available Available Available Available None
Supports SMTP Yes Yes Yes Yes Yes
Supports IMAP Yes Yes Yes Yes No
Supports JMAP No Yes Yes No No
Supports POP3 Yes Yes Yes Yes No
Supports FetchMail Yes No No No No
Supports CLI Yes Yes Yes Yes No
Supports WebAdmin No Yes Yes Yes Yes
Supports Grafana metrics No Yes Yes No No
Mailbox implementation JPA/MailDir/JCR/Memory Cassandra Cassandra JPA JPA
Indexer implementation Lucene/None ElasticSearch ElasticSearch Lucene None
Server data implementation JPA/File/HBase/JCR Cassandra Cassandra JPA JPA
Mail queue implementation ActiveMQ ActiveMQ ActiveMQ ActiveMQ ActiveMQ
Sieve Experimental Experimental Experimental Experimental No
User defined mailbox listener registration No Yes (master) Yes (master) Yes (master) No
Installation instructions Here Here Here Here Here