Software:Apache James

From HandWiki
Apache James
Apache James Logo
Developer(s)Apache Software Foundation
Stable release
3.8.2 / January 29, 2025; 10 months ago (2025-01-29)[1]
RepositoryJames Repository
Written inJava
PlatformJava SE
TypeMail transfer agent
LicenseApache License 2.0
Websitejames.apache.org

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.

Development

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]

See also

References

  1. "GitHub tag: james-project-3.8.2". https://github.com/apache/james-project/releases/tag/james-project-3.8.2. 
  2. 2.0 2.1 James Server - Overview
  3. "James Project - Who We Are". http://james.apache.org/weare.html. 
  4. 4.0 4.1 4.2 "Board of Directors Meeting Minutes". Apache Software Foundation. 2003-01-22. http://www.apache.org/foundation/records/minutes/2003/board_minutes_2003_01_22.txt. 
  5. "Apache James". Linagora. https://linagora.com/en/apache-james. 
  6. "Highlight Track: Getting Apache James to serve 1M+ digital mailboxes of all Estonian residents". ApacheCon@Home. ApacheCon. September 21, 2021. https://www.apachecon.com/acah2021/tracks/highlight.html. 
  7. 7.0 7.1 7.2 Claude Duguay (2003-06-10). "Working with James". IBM. http://www.ibm.com/developerworks/java/library/j-james1.html. 
  8. 8.0 8.1 "News Archive". Apache James Project. https://james.apache.org/newsarchive.html. 
  9. 9.0 9.1 "Commit 59f8772: CHANGELOG.md". Apache James Project. July 17, 2024. https://github.com/apache/james-project/commits/59f8772/CHANGELOG.md. 
  10. "Apache James Server 3.5.0". Apache James Project. July 16, 2020. https://james.apache.org/james/update/2020/07/16/james-3.5.0.html. 
  11. "Apache James Server 3.6.0". Apache James Project. March 16, 2021. https://james.apache.org/james/update/2021/03/16/james-3.6.0.html. 
  12. "Apache James Server 3.7.0". Apache James Project. March 21, 2022. https://james.apache.org/james/update/2022/03/21/james-3.7.0.html. 
  13. "Apache James Server 3.8.0". Apache James Project. May 17, 2023. https://james.apache.org/james/update/2023/05/17/james-3.8.0.html. 
  14. "Apache James Server 3.8.1". Apache James Project. January 9, 2024. https://james.apache.org/james/update/2024/01/09/james-3.8.1.html. 
  15. "Apache James Server 3.8.2". Apache James Project. January 29, 2024. https://james.apache.org/james/update/2025/01/29/james-3.8.2.html.