James 服务器
James是一个开放源码项目,该项目致力于开发一个健壮的、灵活的、功能强大的企业级服务器 ,用来向企业提供电子邮件及其相关的服务。该服务器被设计成高度灵活的,允许管理员通过配置对James进行定制,几乎可以对电子邮件进行任何处理。
James服务器是建立在 Avalon框架之上的。标准的James distribution 部署在 Phoenix Avalon Framework 容器之内.Phoenix除了为James提供了一个健壮的服务体系架构之外,还可以让James的管理员在容器里部署他们自己的应用程序。这样,在邮件处理的过程中,James可就以访问这些应用程序。
James服务器提供了一个email解决方案,它由一组完整的邮件服务和相关的组件组成。这些组件在下面描述:
POP3 服务
The POP3 协议定义了email消息的检索规则。它是email客户端下载和管理email消息最常用的方法。
The James 提供的POP3服务完全是协议说明简单直接的实现,可以最大限度的与常用的POP3客户端兼容。此外, 通过配置,James还能够支持POP3客户端与服务器之间的SSL/TLS连接。
关于POP3服务的详细配置信息,请参阅这里。
SMTP服务
SMTP (简单邮件传输协议) 是在internet上发送和传输email的标准协议。 James完全实现了SMTP specification中所定义的功能,还支持某些可选的特殊功能,比如:消息大小的限制、SMTP认证、客户端和服务器之间的加密通讯。
关于SMTP服务的详细配置信息,请参阅这里.
NNTP 服务
NNTP用于客户端在新闻服务器上存储和检索消息。James提供了这个交互过程的服务器端程序。它实现了NNTP说明和一个适用于新闻消息存储的存储机制。James简单直接的实现了NNTP服务器,但还支持一些额外的特性,比如NNTP身份认证和客户端与服务器端的加密通信。
关于NNTP服务的详细配置信息,请参阅here.
FetchPOP
FetchPOP, 与其他的James组件不同,它不是一个RFC文档的实现。它使得管理员可以通过配置让James从其它不同的POP3服务器上检索email消息并把他们存到本地的消息池中。这样用户就可以用一个账号接收几个不同账号的邮件服务器上的邮件了。
关于FetchPOP服务的详细配置信息,请参阅这里.
SpoolManager、匹配器和 Mailets
James 将获取邮件的服务(如SMTP,FetchPOP)与接收到邮件后所进行的处理的机制分开SpoolManager 组件是James的邮件处理引擎,它是一个Mailet容器,消息的处理实际上是由它所包含的mailets和消息匹配器实现的。
SpoolManager 的结构和 Mailet API 的详细信息可以参阅这里。
存储机制
James采用几种不同的存储机制存储消息数据(email,新闻)和用户信息。用户存储保存用户信息,包括 用户名、认证信息和组。邮件存储已经发送到本地的邮件。池存储保存正在进行处理的消息。新闻存储用来保存新闻消息。除了根据存储的数据类型对存储机制进行分类外,还根据存储机制的数据存放方法进行分类,有文件、关系型数据库和混合型三种类型。
远程管理
James提供了一个基于telnet的简单控制界面。通过这个界面,你能够添加和删除用户、配置每个用户的组和转发地址,还有关闭服务。
关于远程配置的详细信息请参阅这里。
,