Java Apache 企业邮件服务(又名:Apache James) 是利用纯java编写的,支持SMTP和POP3邮件服务和NNTP新闻服务,是完整和便携的企业级邮件引擎解决方案。James当前基于可用的开放协议。
James Server也是一个邮件应用平台。James工程同时开发Apache Mailet API,并且James Server 是一个Mailet容器,这点使得邮件处理更容易设计,编写和部署自定义的应用程序。模块化和自定义是James的优点,它允许管理员去创建强大易用的应用程序。
James构建在Avalon Application Framework,这个框架促进了许多开发实践,例如面向组件开发和IOC。James囊括了Phoenix Avalon Framework container,它为James server奠定了强大和稳定的基础。
这篇文档介绍了James的概念和James的实现,还有安装、配置手册,为开发人员build James Server。
I. James 概念
摘要(summary):
--The James Server
James 是一个开源项目,为了创建一个坚固,灵活,强大的企业类服务,并可提供邮件和邮件相关的服务.也被设计为高可定制性,允许管理员去灵活配置James.
James Server 是构建在Avalon Framework上的.标准的James发行版本包括了Phoenix Avalon Framework 容器.除了为James提供坚固的服务架构,Phoenix 的使用允许James管理员去部署它们自己的应用程序到容器中.这些应用程序在邮件处理过程中能被调用.
James server的实现由一些完整的服务集合和相关的组件构成,集成在一起,实现邮件解决方案.这些组件描述如下.
--POP3 Service
POP3 协议允许用户去获取邮件消息,普遍用于客户端下载和管理邮件信息.
James是POP3服务的一个简单直接实现,它与规范一致并且最大化兼容通用的POP3客户端.此外,James能让POP3客户端使用SSL/TLS连接.
--SMTP Service
SMTP是在internet上发送和转移emali的标准方法.James提供基于SMTP规范所有功能的实现,支持一些可选特性,例如消息大小限制,SMTP验证,加密的 客户/服务器 通信.
--NNTP Service
NNTP用于客户端从新闻服务器存储和获取消息.James通过实现NNTP规范实现了服务的交互,还有为存储新闻消息所提供的仓库.James简单和直接的实现,但支持一些额外的特性,例如NNTP验证,加密的 客户/服务器 通信.
--FetchMail
FetchMail ,不像其他的James组件,这不是一个RFC的实现.然而,这个组件允许管理去配置James,能够从更多的POP3服务获取Email和转移邮件到本地.这方便在不同的机器上的多个账户合并邮件转移到一个用户(This is useful for consolidating mail delivered to a number of accounts on different machines to a single account.)
---The SpoolManager, Matchers, and Mailets
当James处理收来的邮件时,James从引擎上区分不同的服务(SMTP,FecthMail)来转移邮件.SpoolManager 组件是James的邮件处理引擎.James的SpoolManager组件是一个Mailet容器,It is these mailets and matchers that actually carry out mail processing.
--Repositories
James有许多不同的仓库去存储消息数据(email,news messages) 和用户信息.用户仓库存储用户信息,包括用户名验证信息和别名.邮件仓库存储已被转移的消息.Spool仓库存储正在被处理的消息.最后,新闻仓库被用作存储新闻消息.另外,他们存储什么类型的数据,仓库以数据存储在什么地方来区分.有3种存储类型--File,Database 和DBFile.
--RemoteManager
James提供一个简单的telnet-base 控制接口,通过这个接口你能添加和删除用户,配置每个用户的别名和forward addresses和停止服务.
分享到:
相关推荐
Red5是由James Rossiter创建的Java应用程序,它允许开发人员构建实时交互的多媒体应用。这个服务器支持RTMP(Real Time Messaging Protocol)、HLS(HTTP Live Streaming)、RTSP(Real Time Streaming Protocol)...
"apache-james-2.3.2.jar"是该项目的一个版本,此版本为2.3.2,通常包含了运行Apache James所需的类库和资源。"apache-james-2.3.2.jar+源码"意味着除了可执行的JAR文件外,还包含了项目的源代码,这对于开发者来说...
1. **解压源代码**:使用`tar -zxvf apache-james-2.3.2-src.tar.gz`命令解压缩文件。 2. **构建项目**:如果你的系统中安装了Maven,可以运行`mvn clean install`来编译源代码并创建可执行的JAR文件。 3. **配置**...
1. **性能提升**:Gradle团队一直在努力提高构建速度,6.7.1可能包括更快的依赖解析和更高效的缓存策略。 2. **更好的错误报告**:为了帮助开发者更快地定位和解决问题,Gradle 6.7.1可能提供了更清晰、更详细的...
Expat 是一个开源的 XML 解析库,由 James Clark 创建,主要用于处理 XML 文档。它在许多软件项目中被广泛使用,特别是在需要高效、轻量级 XML 处理的场景下。"expat-2.3.0.tar.gz" 是 Expat 库的版本 2.3.0 的源...
- 主要的配置文件包括`conf/james-server.xml`,用于设置服务器的基本参数,如端口号、存储路径等。 - 还有`conf/mailetcontainer.xml`和`conf/milter-container.xml`,分别定义了Mailet和Milter过滤规则,用于...
Expat 是由 James Clark 开发的一个小型、快速且可移植的 XML 解析器,它不依赖于特定的编程语言,提供了 C 接口供其他程序调用。Expat 不支持完整的 XML 规范,而是专注于基础的解析任务,如解析文档结构、识别...
这个压缩包"apache-james-3.0-beta3-app.zip"包含的是Apache James项目的3.0 Beta3版本的应用程序。在这个版本中,开发者可以预览即将发布的稳定版的新特性,并对邮件服务器进行测试。 Apache James的核心组件包括...
ASGI是Python Web开发的一个重要概念,由Django的作者Django项目创始人James Bennet提出。传统的WSGI(Web Server Gateway Interface)在处理高并发场景时可能会遇到性能瓶颈,因为它是基于请求-响应模型的同步接口...
"james-server-app-3.0.1-app"是一个专为邮件服务设计的应用程序,它基于James邮件服务器项目,提供高效、稳定且可定制的邮件解决方案。 James邮件服务器是一个开源、Java实现的邮件和消息服务器,其设计目标是为...
OLAP4J是Java平台上的一个开放标准,由JDBC的创造者之一,James Gosling的前同事Barry Klawans发起。它的设计目标是成为Java开发者在处理OLAP数据时的标准API,类似于JDBC对于关系数据库的访问。通过OLAP4J,开发者...
此压缩包"apache-james-3.0-beta3-source-release.zip"包含了Apache James 3.0 beta3版本的源代码,用户可以在此基础上进行定制化开发或者深入了解其内部工作原理。 Apache James的核心组件包括: 1. **Mailet**:...
jar包,亲测可用
PyQt5-5.9.2-5.9.3-cp35.cp36.cp37-none-win_amd64.whl python3.5-3.7,64位
本文将详细探讨"james-server-app-3.0.1"版本的启动问题及其解决方案,确保邮件服务能够稳定运行。 首先,我们需要理解James Server的核心功能和架构。James Server是一个基于Java构建的邮件和消息服务器,它提供了...
jar包,亲测可用
1. **下载与解压**: 首先从官方网站或者通过提供的`apache-james-2.3.2.zip`文件下载Apache James的源码或二进制包。解压缩后,你会得到一个包含各种配置文件和可执行jar的目录结构。 2. **环境配置**: Apache ...
jar包,亲测可用
jar包,亲测可用
在深入讲解Red5 Server 1.0.8-M13之前,我们先了解下Red5的基本概念。Red5是由James Strachan创建的,它支持RTMP(Real Time Messaging Protocol)协议,使得用户可以流畅地传输音频、视频和其他数据。RTMP广泛应用...