模块化Java邮件服务器,支持IMAP、SMTP、POP3和JMAP,具备Docker部署、分布式架构及CLI管理功能,适用于安全的企业邮件基础设施。
:latest_james_version: 3.8.0
image:https://img.shields.io/badge/Join%20us-Mailing%20lists-purple.svg[link="https://james.apache.org/mail.html"] link:https://gitter.im/apache/james-project[image:https://badges.gitter.im/apache/james-project.svg[Join the chat at link:https://gitter.im/apache/james-project]] image:https://img.shields.io/badge/CI-Jenkins-blue.svg[link="https://ci-builds.apache.org/job/james/job/ApacheJames/"] image:https://img.shields.io/badge/Documentation-green.svg[link="https://james.apache.org/documentation.html"] image:https://img.shields.io/badge/Downloads-{latest_james_version}-yellow.svg[link="https://james.apache.org/download.cgi"] image:https://img.shields.io/badge/Images-docker-blue.svg[link="https://hub.docker.com/r/apache/james"] image:https://img.shields.io/badge/License-ApacheV2-orange.svg[link="https://www.apache.org/licenses/"] image:https://img.shields.io/badge/Latests-news-red.svg[link="https://james.apache.org/index.html#posts"]
image::james-logo.png[link="https://james.apache.org"]
James 代表 Java Apache Mail Enterprise Server!
它采用模块化架构,基于一组现代且高效的组件,最终提供在 JVM 上运行的完整、稳定、安全且可扩展的邮件服务器。
通过控制反转邮件平台,您可以组装所需组件来创建自己的个性化邮件处理方案,并利用 James Mailet 容器进一步定制过滤和路由规则。
支持的协议包括:IMAP、SMTP、link:https://jmap.io[JMAP]、POP3 等...
link:https://james.staged.apache.org/james-distributed-app/{latest_james_version}/index.html[*分布式服务器*] 专注于提供基于现代技术(Cassandra、S3、OpenSearch 和 RabbitMQ)的易于运维的可扩展邮件服务器。
更多信息请访问 https://james.apache.org/[我们的网站]。
== 如何贡献?
James 是一个依赖社区贡献生存的项目!任何人都可以贡献!
请阅读 https://james.apache.org/index.html#third[如何贡献]。
我们非常欢迎关于 James 的文章和博客。请通过 https://james.apache.org/mail.html[电子邮件] 或 https://gitter.im/apache/james-project[Gitter] 联系我们分享您的经验。
文档是入门的好方法,而且非常受欢迎!查看 JIRA 上标记为 https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20documentation%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC[~documentation] 的问题。
要开始代码贡献,请在 JIRA 上搜索标记为 https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20newbie%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC[~newbie]、 https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20easyfix%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC[~easyfix]、 https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20feature%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC[~feature] 的问题。
== 如何试用 James
要求:已安装 docker。
这里您将使用 docker 镜像试用 James 服务器版本 {latest_james_version}。此 James 镜像使用默认配置,采用 JPA (hsqldb) 和 Lucene。它还包含一个名为 james.local 的默认域和三个默认用户:[email protected]、[email protected]、[email protected],它们的默认密码均为 1234。
注意:此 James 服务器将响应 IMAPS 端口 993 和 SMTPS 端口 465。
使用以下单一命令拉取并运行 James 镜像:
$ docker run -p "465:465" -p "993:993" apache/james:demo-{latest_james_version}
然后,将此镜像连接到例如 Thunderbird。 link:https://james.apache.org/howTo/imap-server.html[本教程] 更深入地介绍了用户和域的创建,以及 Thunderbird 的设置。
不涉及 docker 的说明也可在 link:https://james.apache.org/server/install.html[此处] 找到。
== 如何检查编译
构建项目需要最低 link:https://maven.apache.org[maven] 3.6.1 版本。
$ git clone [email protected]:apache/james-project.git
然后,在此目录中运行 mvn clean install 以编译项目。
有用的选项包括:
-DskipTests 跳过耗时且需要 docker 守护进程的资源密集型测试套件。-T 4 在多个 CPU 上并行构建。-Dmaven.javadoc.skip=true 跳过 javadoc 生成。
====== 如何在 Docker 中运行 James
我们为基于 link:https://github.com/google/guice[Guice] 的应用程序维护 docker 发行版:
== 使用 CLI
有关更多信息,请参阅 https://james.apache.org/server/manage-cli.html[通过命令行管理 James]。
== 在 James 上开发
James 至少需要 JDK 11 和 Maven 3.6.1 才能构建。 James 的部分代码使用 Scala 编写,因此可能需要在 IDE 中启用 Scala 插件。
我们维护 link:examples/README.md[代码示例] 以帮助您编写自己的扩展和配置自己的服务器。
link:docs/modules/development/pages/deployment-tests.adoc[此页面] 详细介绍了如何运行部署测试。
== 了解更多关于 James 设计
James 提供了 https://james.apache.org/documentation.html[文档] 和 https://github.com/linagora/james-project/tree/master/src/adr[架构决策记录]。
关于分布式服务器架构的更精确描述可在 link:https://james.staged.apache.org/james-distributed-app/{latest_james_version}/architecture/index.html[此处] 找到。
== James 社区文章