Apache James

{{Short description|Open-source mail server}}

{{Notability|date=October 2024}}

{{Use US English|date=January 2025}}

{{Infobox software

| name = Apache James

| logo = File:Apache_James_logo.svg

| screenshot =

| caption =

| collapsible =

| author =

| developer = Apache Software Foundation

| released =

| latest release version = 3.8.2

| latest release date = {{Start date and age|2025|01|29}}{{cite web |url= https://github.com/apache/james-project/releases/tag/james-project-3.8.2 |title=GitHub tag: james-project-3.8.2 |website=GitHub |access-date=May 9, 2025}}

| latest preview version =

| latest preview date =

| repo = {{URL|https://git.apache.org/repos/asf/james-project.git|James Repository}}

| programming language = Java

| operating system =

| platform = Java SE

| language =

| genre = Mail transfer agent

| license = Apache License 2.0

| website = {{URL|//james.apache.org}}

}}

Apache James, or Java Apache Mail Enterprise Server, is an open source SMTP and POP3 mail transfer agent written entirely in Java.[http://james.apache.org/server/index.html James Server - Overview] James is maintained by contributors to the Apache Software Foundation, with initial contributions by Serge Knystautas.{{Cite web |url=http://james.apache.org/weare.html |title=James Project - Who We Are |access-date=2008-02-22 |archive-url=https://web.archive.org/web/20111101190140/http://james.apache.org/weare.html |archive-date=2011-11-01 |url-status=dead }} 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.{{Cite web|title=Apache James |publisher=Linagora |url= https://linagora.com/en/apache-james |access-date=January 27, 2025 }}{{Cite web |title=Highlight Track: Getting Apache James to serve 1M+ digital mailboxes of all Estonian residents |work=ApacheCon@Home |publisher=ApacheCon |date=September 21, 2021 |url= https://www.apachecon.com/acah2021/tracks/highlight.html |access-date=January 27, 2025 }}

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. 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,{{cite web |url=http://www.ibm.com/developerworks/java/library/j-james1.html |title=Working with James |access-date=2008-02-22 |author=Claude Duguay |date=2003-06-10 |publisher=IBM| archive-url= https://web.archive.org/web/20080129160018/http://www.ibm.com/developerworks/java/library/j-james1.html#resources| archive-date= 29 January 2008 | url-status= live}} and arose because Sun Microsystems declined a proposal to include mail-handling in the servlet implementation. James ships with a variety of pre-written matchers and mailets to serve common tasks. 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.{{cite web |url=http://www.apache.org/foundation/records/minutes/2003/board_minutes_2003_01_22.txt |title=Board of Directors Meeting Minutes |access-date=2008-02-23 |date=2003-01-22 |publisher=Apache Software Foundation}} 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.

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.{{Cite web|title=Commit 59f8772: CHANGELOG.md |work=Apache James Project |via=GitHub |url= https://github.com/apache/james-project/commits/59f8772/CHANGELOG.md |date=July 17, 2024 |access-date=January 27, 2025}}

class="wikitable"

! Version

ReleasedNotes
2.3.0October 2006
2.3.1April 2007
2.3.2August 2009{{Cite web|title=News Archive |work=Apache James Project |url= https://james.apache.org/newsarchive.html |access-date=January 27, 2025 }}
2.3.2.1September 8, 2015security fix
3.0.0July 20, 2017IMAP support, draft JMAP support
3.0.1October 20, 2017security fix
3.1.0July 31, 2018
3.2.0November 14, 2018
3.3.0March 26, 2019
3.4.0September 5, 2019
3.5.0July 16, 2020Support for Docker, distributed configuration using Cassandra, ElasticSearch, RabbitMQ and S3 backends{{Cite web |title=Apache James Server 3.5.0 |date=July 16, 2020 |work=Apache James Project |url= https://james.apache.org/james/update/2020/07/16/james-3.5.0.html |access-date=January 27, 2025 }}
3.6.0March 16, 2021Java JRE 11 required, JMAP RFC-8621 support{{Cite web |title=Apache James Server 3.6.0 |date=March 16, 2021 |work=Apache James Project |url= https://james.apache.org/james/update/2021/03/16/james-3.6.0.html |access-date=January 27, 2025 }}
3.7.0March 1, 2022maildir support removed, support for OAuth, OpenID Connect, security and performance improvements{{Cite web |title=Apache James Server 3.7.0 |date=March 21, 2022 |work=Apache James Project |url= https://james.apache.org/james/update/2022/03/21/james-3.7.0.html |access-date=January 27, 2025 }}
3.8.0May 17, 2023Improved IMAP support, JMAP Quotas, OpenSearch{{Cite web |title=Apache James Server 3.8.0 |date=May 17, 2023 |work=Apache James Project |url= https://james.apache.org/james/update/2023/05/17/james-3.8.0.html |access-date=January 27, 2025 }}
3.8.1January 9, 2024security fix{{Cite web |title=Apache James Server 3.8.1 |date=January 9, 2024 |work=Apache James Project |url= https://james.apache.org/james/update/2024/01/09/james-3.8.1.html |access-date=January 27, 2025 }}
3.8.2January 29, 2025security fixes{{Cite web |title=Apache James Server 3.8.2 |date=January 29, 2024 |work=Apache James Project |url= https://james.apache.org/james/update/2025/01/29/james-3.8.2.html |access-date=May 9, 2025 }}

See also

References

{{Reflist}}