AliKevin 写道
The Apache James Project delivers a rich set of open source modules and libraries, written in Java, related to Internet mail communication which build into an advanced enterprise mail server.
Apache James Hupa 是基于交互式邮件存取协议之上的GWT开发包,我们可以基于GWT进行WebMail的开发。
插件:[开发插件|http://dl.google.com/eclipse/plugin/3.7]
注:IMAP(Internet Mail Access Protocol)(交互式邮件存取协议)IMAP是斯坦福大学在1986年开发的研发的一种邮件获取协议。它的主要作用是邮件客户端(例如MS Outlook Express)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等
Apache James Protocols 项目是一个轻量级高度可扩展的邮件协议框架,他可以于任何socket实现进行集成。
注:以后的协议层性能调优可以考虑用NIO或者用mina进行强化。
James应用该项目实现SMTP服务。
Apache James IMAP 项目提供了对IMAP、简单数据访问的编码实现。
在James3中应用该项目实现了IMAP服务。
IMAP(Internet Mail Access Protocol)(交互式邮件存取协议)IMAP是斯坦福大学在1986年开发的研发的一种邮件获取协议。它的主要作用是邮件客户端(例如MS Outlook Express)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等.
Apache James Mailets 项目为james提供了操作mail的可扩展开发的API,它为开发e- mail应用程序提供了一个基于组件生命周期和容器的解决方案。类似于servlet,mailet程序可以部署到任何mailet容器中。
James 的很多特性是通过Mailet API 实现的,熟悉Servlet API的开发者可能会觉得奇怪,它看起来很眼熟。Mailet接口支持两个生命周期方法,一个提供初始化(init() 方法),一个停止服务(destroy() 方法)。还有两个返回信息的方法,getMailetInfo(), 返回一个包含作者、版本、该mailet的版权等信息的字符串对象,getMailetConfig()很实用,它返回mailet的配置信息。init()方法有一个MailetConfig对象作为参数,虽然这个对象可能被修改,但它通常是由getMailetConfig()提供的。
The Mailet 接口
public interface Mailet
{
void init(MailetConfig config);
void destroy();
String getMailetInfo();
MailetConfig getMailetConfig();
void service(Mail mail);
}
services() 方法以一个Mail 对象为参数,完成主要的处理工作。Maile对象提供了对容器状态、邮件消息和要进行处理的元数据的访问。
表格2是James已有的mailet实现的列表,它可以给你一个James支持的特性和已有的mailet应用程序的类型的概念。
1. James自带的 mailets,如下:
Mailet Description |
Null 结束e-mail消息的处理 |
AddHeader 给消息内容加一个文本的头信息 |
AddFooter 给消息内容加一个文本的脚信息 |
Forward 将消息转发给列表中的接收者 |
Redirect 提供可配置的转发服务 |
ToProcessor 将e-mail处理转发给一个指定的处理器 |
ToRepository 将消息复制到指定的目录下 |
NotifySender 将消息作为附件转发给原始的发送者 |
NotifyPostmaster 将消息作为附件转发给postmaster |
RemoteDelivery 管理SMTP主机的发送 |
LocalDelivery 将消息发送到本地邮箱 |
JDBCAlias 使用JDBC数据源进行别名翻译 |
JDBCVirtualUserTable 使用JDBC数据源进行更复杂的别名翻译 |
UseHeaderRecipient 从消息的头信息中重建邮件的接收者 |
ServerTime 发送一个带有服务器时间戳的消息 |
PostmasterAlias 将 postmaster@ 的消息转发到一个个人的地址中 |
AddHabeasWarrantMark 给消息添加一个Habeas Warrant标记 |
AvalonListserv 提供一个基本的目录服务器功能 |
AvalonListservManager 处理目录服务器的管理命令 |
从这个列表可以看出,有几个James所支持的特性要归功于Mailet API,包括复杂的目录服务器支持、别名、存储和路由能力。
2.James-MatchersAPI也是James的重要成员, James自带了一些标准的匹配器(matchers)。它们全都实现了Matcher API:
James自带的匹配器(matchers)
Matcher Description |
All 匹配所有的e-mail并返回所有的接收者 |
HasHeader 匹配含有指定的头信息的消息 |
HasAttachment 匹配带有附件的消息 |
SubjectStartsWith 匹配标题以指定的文本开头的消息 |
SubjectIs 匹配含有指定的标题消息 |
HostIs 匹配来自指定的主机的消息 |
HostIsLocal 匹配本机产生的消息 |
UserIs 匹配指定的用户的消息 |
SenderIs 匹配指定的发送者的消息 |
SenderInFakeDomain 匹配发送者的主机地址不能解析的消息 |
SizeGreaterThan 匹配比指定的限制大的消息 |
Recipients 匹配接收者在指定的列表中的消息 |
RecipientsLocal 匹配接收者在本地的消息 |
IsSingleRecipient 匹配仅有一个接收者的消息 |
RemoteAddrInNetwork 匹配来自指定的IP地址、域等列表的消息 |
RemoteAddrNotInNetwork 匹配不是来自指定的IP地址、域等列表的消息 |
RelayLimit 匹配转发次数大于指定的服务器数的消息。 |
InSpammerBlackList 与mail-abuse.org提供的列表中的地址匹配 |
NESSpamCheck 采用得自Netscape Mail Server的方法匹配垃圾邮件 |
HasHabeasWarrantMark 采用Habeas Warrant匹配邮件 |
FetchedFrom 与FetchPOPMatches所用的 X-fetched-from 头信息匹配 |
CommandForListserv 匹配目录服务器的命令 |
Apaehe James Mailbox项目是一为各种邮件协议提供灵活存储和访问管理的API。目前支持MailDir, Database (via JPA) and JCR等存储。
James的Repository机制灵活,以Spring的注入方式可以任意配置扩展。
目前支持的Repository
1.JPA:DB
2.MailDir:File System,MUA(MAIL USER AGENT)An MUA can read and delete messages while new mail is being delivered: each message is stored in a separate file with a unique name, so it isn't affected by operations on other messages. An MUA doesn't have to worry about partially delivered mail: each message is safely written to disk in the tmp subdirectory before it is moved to new. The maildir format is reliable even over NFS
3.Jcr:(jackrabbit)Jackrabbit is content repository,it is a fully conforming implementation of the Content Repository for Java Technology API (JCR, specified in JSR 170 and 283).
A content repository is a hierarchical content store with support for structured and unstructured content, full text search, versioning, transactions, observation, and more.
4.memeory
5.queue
JAMES-Mailbox存储方式接口如下:
Apache James Mime4J 提供 对MIME类型邮件数据和RFC822格式邮件的解析。
Apache James jSPF是SPF规范的Java实现.jSPF是一种防止伪造email的发件人地址,从服务器端防止垃圾邮件的一种规范。反欺诈的实现。
SPF:寄件人来源认定,在SPF体系中,每个需要发送电子邮件的企业在其对外发布的DNS域名记录中,列出自己域名下需要发送邮件的所有IP地址段;
而接收到邮件的服务器则根据邮件中发件人所属的域名,查找该企业发布的合法IP地址段,再对照发送邮件的机器是否属于这些地址段,就可以判别邮件是否伪造的。
SPF规范|
http://mail.zsnc.net:1080/aboutspf.htm
例如:邮箱kevin@126.com的用户通过126.com的邮件服务器220.181.15.43向我们的邮件系统发信,我们通过域名解释服务查找域名126.com发布的IP地址段,发现有两条:220.181.12.0/22和202.108.5.0/24,包含220.181.15.43,因此判定这封邮件是真实的;假如该用户从其他地址发送邮件,那么我们探测到的发件机器IP就很可能不属于上述两个地址段,将被判为假冒邮件。
Apache James Mail Protocol Tester (MPT) is a framework for the scritable functional testing of ASCII based line protocols
James-Postage
Apache James Postage 是一个对支持 POP3 and SMTP.邮件协议的邮件服务器进行测试的框架。
Postage 可以记录James 的资源情况,发现资源瓶颈。如发现内存泄露。
- 大小: 103.9 KB
分享到:
相关推荐
James服务器的组件包括: 1. SMTP和POP3邮件服务器,分别负责邮件的发送和接收。 2. 远程管理服务器,便于管理员远程监控和管理邮件服务器。 3. NNTP服务器,用于新闻组交流。 4. 邮件处理引擎,基于Mailet API,能...
在了解Apache James Server 3的配置之前,我们需要首先了解它的一些核心概念和组件。 **Mailbox Persistence(邮箱持久化)**: Mailbox指的是用户的收件箱、已发送邮件和垃圾邮件文件夹。邮箱的持久化配置默认使用...
"james-2.3.0.zip"是该服务器的一个版本压缩包,其中包含了运行James服务器所需的所有组件和配置文件。 在安装James服务器之前,你需要了解以下关键知识点: 1. **Java环境**:由于James是用Java编写的,所以首先...
3. **org.apache.james.mailet**:Mailet API和Mailet的实现,这是处理邮件的核心组件。 4. **org.apache.james.core**:James的核心类和工具类,包括配置管理、日志记录等。 5. **org.apache.james.container**:...
Apache James的系统架构包括邮件服务器的核心组件、邮件处理组件、存储组件等。这些组件协同工作,以实现邮件服务器的功能。 Apache James是一款功能强大且配置灵活的邮件服务器软件,对于邮件服务器的管理和维护...
Apache James的核心组件包括: 1. **Mailet API**:这是James的核心部分,Mailet是一种处理邮件的编程接口,它不同于传统的SMTP代理。Mailets允许开发者编写自定义的邮件处理逻辑,如过滤、转发、内容修改等。 2. ...
James有潜力成为功能更强的应用服务器,这得益于它的组件式体系结构和mailet基础设施。mailet对e-mail 所起的作用与servlets对Web服务器的作用相似,E-mail服务器在最终发展成为Internet的DARPA出现的早期就已经很...
Apache James的设计基于组件化和容器化原则,利用了Apache Avalon和Apache Phoenix框架,使其既可以独立运行(从命令行启动),也可以嵌入到如JBoss等应用服务器中。James的架构中心是其组件化的Mail Processing ...
在配置James时,我们需要了解其架构、组件以及配置文件的结构。 描述中提到的“NULL”意味着没有提供具体的配置细节,但我们可以根据常见的电子邮件服务器配置流程来探讨一些可能的知识点。 首先,`config.xml`是...
邮件服务器主要由两个关键组件构成:SMTP(Simple Mail Transfer Protocol)用于发送邮件,而POP3(Post Office Protocol version 3)或IMAP4(Internet Message Access Protocol version 4)用于接收邮件。James...
同时,定期更新服务器和组件,修补任何已知的安全漏洞。 8. **备份与恢复**:定期备份OpenDS的数据,以防数据丢失。了解如何在紧急情况下恢复OpenDS和James的配置,确保业务连续性。 9. **性能调优**:根据服务器...
1.javamail1.4 2.common-mail-1.1 3.james-binary-2.3.1 运用以上三种组件实现发送邮件 在发送邮件时,出现javax.mail.AuthenticationFailedException时 怎么解决,请看此。。。
在压缩包文件名称列表中,"james-server-app-3.0.0"可能包含了James服务器应用程序的全部组件,包括核心服务、Mailets、配置文件以及可能的示例和文档。用户解压后,通过简单的命令行或图形界面即可启动服务器,开始...
2. **邮件传输代理(MTA)**:作为邮件服务器的核心组件,James实现了SMTP(简单邮件传输协议),负责邮件的发送和接收,确保邮件在网络中的正确传递。 3. **邮件存储**:James支持多种邮件存储机制,如Maildir、...
本文将深入探讨“claros-intouch-2.2-beta+james-2.3.2.1”这一组合,它涉及到Webmail邮件服务器的搭建,特别是Claros Intouch 2.2 Beta和James 2.3.2.1两个关键组件。 Claros Intouch是一款先进的Webmail客户端,...
这个压缩文件名为“james-server-app-3.2.0”,包含了所有必要的组件和配置文件。确保你有一个运行Java环境的服务器,因为James是基于Java的。 **二、上传与解压** 将下载的压缩文件上传到你的服务器。你可以使用...
首先,让我们深入了解Apache James的核心组件和特性: 1. **Mailet容器**:James的核心是Mailet容器,这是一个基于事件驱动的邮件处理模型。Mailets类似于Servlets,但它们处理的是邮件而不是HTTP请求。开发者可以...
通常,一个Apache James的发行版可能包含以下组件和文件: 1. **源代码**:项目的核心代码,用于编译和定制服务器。 2. **构建脚本**:如`build.gradle`或`pom.xml`,用于构建和打包项目。 3. **配置文件**:如`...
首先,我们需要理解James的核心组件和工作原理。James包括SMTP服务器、POP3服务器、IMAP4服务器以及邮件存储管理等多个部分。SMTP用于发送邮件,POP3和IMAP4用于接收邮件,而邮件存储则负责保存和检索邮件。 **SMTP...