![]() | The topic of this article may not meet Wikipedia's general notability guideline. (October 2024) |
Apache James | |
---|---|
![]() | |
Developer(s) | Apache Software Foundation |
Stable release | 3.8.2
/ January 29, 2025[1] |
Repository | James Repository |
Written in | Java |
Platform | Java SE |
Type | Mail transfer agent |
License | Apache License 2.0 |
Website | james |
Apache James, or Java Apache Mail Enterprise Server, is an open source SMTP and POP3 mail transfer agent written entirely in Java.[2] James is maintained by contributors to the Apache Software Foundation, with initial contributions by Serge Knystautas.[3][4] IMAP support was added in 2010 in version 3.0-M2 (released as stable 3.0.0 in 2017), and JMAP support in version 3.6.0 in 2021. In 2021 open source company Linagora upgraded the government system providing email for every citizen of Estonia to use Apache James.[5][6]
The James project manages the Apache Mailet API which defines "matchers" and "mailets". These allow users to write their own mail-handling code, such as to update a database, build a message archive, or filter spam.[2] A matcher is used to classify messages based on some criteria, and then determines whether the message should be passed to an appropriate mailet for processing. Mailets are so-called due to their conceptual similarity to a servlet,[7] and arose because Sun Microsystems declined a proposal to include mail-handling in the servlet implementation.[4] James ships with a variety of pre-written matchers and mailets to serve common tasks.[7] Many sets of mailets and matchers can be combined to produce sophisticated and complex functional behaviour.
The Apache James project also produces pure Java libraries for implementing Sender Policy Framework (SPF), the Sieve mail filtering language, and parsing MIME content streams, independent of Sun's JavaMail API.
James was originally formed under the Jakarta Project as Jakarta-James.[4] In January 2003, James was upgraded to a top-level Apache project in a unanimous decision by the ASF Board of Directors, under the chairmanship of Serge Knystautas. James was initially distributed within the Phoenix container, which implemented the Apache Avalon application framework.[7]
After the closure of the Apache Avalon project in 2005, the Apache James server code was extensively reworked to use the Spring application framework, which was finally released as version 3.0.0 in 2017.[8][9]
Version | Released | Notes[9] |
---|---|---|
2.3.0 | October 2006 | |
2.3.1 | April 2007 | |
2.3.2 | August 2009 | [8] |
2.3.2.1 | September 8, 2015 | security fix |
3.0.0 | July 20, 2017 | IMAP support, draft JMAP support |
3.0.1 | October 20, 2017 | security fix |
3.1.0 | July 31, 2018 | |
3.2.0 | November 14, 2018 | |
3.3.0 | March 26, 2019 | |
3.4.0 | September 5, 2019 | |
3.5.0 | July 16, 2020 | Support for Docker, distributed configuration using Cassandra, ElasticSearch, RabbitMQ and S3 backends[10] |
3.6.0 | March 16, 2021 | Java JRE 11 required, JMAP RFC-8621 support[11] |
3.7.0 | March 1, 2022 | maildir support removed, support for OAuth, OpenID Connect, security and performance improvements[12] |
3.8.0 | May 17, 2023 | Improved IMAP support, JMAP Quotas, OpenSearch[13] |
3.8.1 | January 9, 2024 | security fix[14] |
3.8.2 | January 29, 2025 | security fixes[15] |