This is an automated email from the ASF dual-hosted git repository. chibenwa pushed a commit to branch staging in repository https://gitbox.apache.org/repos/asf/james-site.git
commit 5be49b2df9ffdc79afec4b1c79173894d7c2fedf Author: Benoit TELLIER <[email protected]> AuthorDate: Thu Aug 27 11:50:38 2026 +0700 Fill the homepage --- docs/modules/ROOT/pages/homepage.adoc | 131 +++++++++++++++++++++------------- 1 file changed, 80 insertions(+), 51 deletions(-) diff --git a/docs/modules/ROOT/pages/homepage.adoc b/docs/modules/ROOT/pages/homepage.adoc index 7e886fc69..6254e2e08 100644 --- a/docs/modules/ROOT/pages/homepage.adoc +++ b/docs/modules/ROOT/pages/homepage.adoc @@ -3,75 +3,104 @@ *Emails at the heart of your business logic.* -Apache James, a.k.a. *Java Apache Mail Enterprise Server*, is a modular, 100% JVM (Java and Scala) -email server and a set of email related libraries. It provides a complete, stable, secure and -extendable mail server, and lets you assemble the components you need to build the email solution -your business requires. +James stands for *Java Apache Mail Enterprise Server*! -James is not only a server you deploy: it is also a *toolkit*. Its Mailet container lets you filter, -route and transform emails with your own business logic, and its libraries can be reused -independently in any JVM application. +It 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. + +Create your own personal solution of emails treatment by assembling the components you need thanks +to the Inversion of Control mail platform offered, and go further customizing filtering and routing +rules using the James Mailet Container. + +James is a living Open Source project - all developments and implementations are based on open +technical standards - and any function which is not already available can be developed! == The James server -The James server implements the standard email protocols - *SMTP*, *LMTP*, *POP3*, *IMAP*, -*ManageSieve* and *JMAP* - on top of pluggable storage APIs (mailbox, search, users) with -implementations backed by Cassandra, PostgreSQL, OpenSearch, JPA databases or the file system. -It can be operated through JMX, a REST administration API and a command line client. +The James server wires together the different libraries composing James to provide running services. + +From a technical point of view: + +* Complete portability: 100% pure JVM (Java & Scala). +* Emailing protocols: SMTP, LMTP, POP3, IMAP, ManageSieve, JMAP. +* Mailet container: independent, extensible and pluggable email processing agents. +* Storage API: Mailbox API / Search API / User API. +* Storage implementations: Cassandra / PostgreSQL / HSQLDB / MySQL / OpenSearch... +* Administration: JMX / REST / Command line. + +Your James server can also be used as a Mail Transfer Agent, by enabling only SMTP, or as an IMAP +Mail Delivery Agent. + +Recent work of the Apache James project did lead to a James product that leverages a *distributed +mail server*, fully horizontally scalable, using storage technologies like Cassandra, OpenSearch, +RabbitMQ and object storage (S3/Swift). + +* xref:james-project::index.adoc[*Apache James Server documentation*] - installation, +configuration, concepts, customization and development guides. +* xref:james-distributed-app::index.adoc[*Distributed James Server documentation*] - running the +horizontally scalable flavour of James. +* xref:download.adoc[Download page] - artifacts and sources for the James server and the James +libraries. + +== The James libraries + +Beyond the server, the Apache James project maintains a set of subprojects: standalone libraries +that can be plugged into any JVM mail application. + +=== Mime4J + +Apache James Mime4J provides a parser, `MimeStreamParser`, for e-mail message streams in plain +RFC-822 and MIME format. The parser uses a callback mechanism to report parsing events such as the +start of an entity header, the start of a body, etc. If you are familiar with the SAX XML parser +interface, you should have no problem getting started with Mime4J. + +The parser only deals with the structure of the message stream - this is intentional, as it should +only provide the most basic functionality needed to build more complex parsers - but Mime4J does +include facilities to decode bodies and fields, and can build a tree representation of an e-mail +message. It has been designed to be extremely tolerant against messages violating the standards. + +xref:mime4j::index.adoc[*Mime4J documentation*] -James can act as a Mail Transfer Agent (MTA) over SMTP, as a Mail Delivery Agent (MDA) exposing -IMAP and JMAP to your users, or as both. +=== jSieve -* xref:james-project::index.adoc[*James server documentation*] - installation, configuration, -concepts, customization and development guides. -* xref:james-distributed-app::index.adoc[*Distributed server*] - the horizontally scalable -flavour of James, backed by Cassandra, OpenSearch and object storage. -* xref:download.adoc[Download] the latest release, or start from the Docker images. +jSieve is a Java implementation of the Sieve mail filtering language defined by RFC 5228. jSieve is +implemented as a language processor that can be plugged into any internet mail application to add +Sieve support. -== Email libraries +Sieve is an extensible mail filtering language. Its limited expressiveness - no loops or variables, +no tests with side effects - allows user created scripts to be run safely on email servers. Sieve is +targeted at the final delivery phase, where an incoming email is transferred to a user's mailbox. -The James project also maintains a set of standalone libraries, each solving one email problem well: +jSieve consists of two products: *Apache jSieve*, the Sieve library itself, and *Apache jSieve +Utilities*, which contains utility classes helpful when using Sieve but not considered sufficiently +core to be included in the main library. -[cols="1,3,1"] -|=== -|Project |Description |Documentation +xref:jsieve::index.adoc[*jSieve documentation*] -|*Mime4J* -|A parser and a builder for e-mail message streams, in plain RFC-822 and MIME formats. -|xref:mime4j::index.adoc[Read the docs] +=== jSPF -|*jSieve* -|An implementation of the Sieve mail filtering language (RFC 5228) and its extensions. -|xref:jsieve::index.adoc[Read the docs] +The jSPF library is a pure Java SPF implementation, designed to match the SPF specifications. SPF, +also known as *Sender Policy Framework*, was designed to detect email spoofing: this is the solution +if you ever were tired of getting spam from yourself. -|*jSPF* -|An implementation of the Sender Policy Framework (RFC 7208), to check that a sender is allowed -to send mail for a domain. -|xref:jspf::index.adoc[Read the docs] +xref:jspf::index.adoc[*jSPF documentation*] -|*jDKIM* -|An implementation of DomainKeys Identified Mail (RFC 6376), to sign and verify emails. -|xref:jdkim::index.adoc[Read the docs] +=== jDKIM -|*HUPA* -|A rich IMAP-based webmail application written in GWT. -|https://james.apache.org/hupa/index.html[Read the docs] -|=== +jDKIM is a DKIM - *DomainKeys Identified Mail* - implementation library written in Java. It provides +both verification and signing, and also provides Mailets for the Apache James project. -== Getting started +Its architecture is thought to handle multiple signatures with performance in mind: body hashing for +multiple signatures is computed concurrently in a single stream run. -. xref:download.adoc[Download] an official binary release, or pull one of the Docker images. -. Follow the xref:james-project::index.adoc[server documentation] to configure your domains, -users and protocols. -. Need a hand? Reach out to the xref:community.adoc[community], or have a look at the -xref:support.adoc[companies providing professional support]. +xref:jdkim::index.adoc[*jDKIM documentation*] == Join the community -Apache James is an Open Source, all-volunteer project of the -https://www.apache.org/[Apache Software Foundation]. It draws its strength from its community of -developers and users, and *all are welcome*. +Apache James Project is an Open Source all-volunteer project obtaining its strength from its +Community made of developers and users. All are welcome to the Community! Have a look at xref:community.adoc[how to join the community], subscribe to the -xref:mailing-lists.adoc[mailing lists], and read the xref:contributing.adoc[contributing guide] -to submit your first patch. We also describe the xref:persona.adoc[people we build James for]. +xref:mailing-lists.adoc[mailing lists], and read the xref:contributing.adoc[contributing guide] to +submit your first patch. We also describe the xref:persona.adoc[people we build James for], and list +the xref:support.adoc[companies providing professional support]. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
