|
|
|
企业级邮件服务器Apache James介绍(1)
作者:Webmaster 来源:Linuxdby.com 点击:
日期:2007-05-31
[收藏] [投稿]
IE是否经常中毒?推荐您
|
英文原文:http://www-106.ibm.com/developerworks/java/library/j-james1.html 学习这个开源项目的基础知识
级别: 中级 Claude Duguay (claude.duguay@verizon.net) 首席架构师, Arcessa, Inc. 6,10, 2003
Java Apache企业级邮件服务器 -- 通常被称为James --是Apache组织构建的一个可移植的,安全的,100% 纯 Java 实现的企业级邮件服务器。但James有潜力成为功能更强的应用服务器,这得益于它的组件式体系结构和mailet基础设施。mailet对e-mail所起的作用与 servlets对Web服务器的作用相似。E-mail 服务器在最终发展成为Internet的DARPA出现的早期就已经很普遍了。但 James 为这个经常被称为Internet最关键的应用提供了新的可能性。 这是探索James的两篇文章中的第一篇. 这篇文章提供了James的概述和探讨它的可能性的指导性方向。在第二篇文章中,我们会实现一个mailet应用程序来管理不能发送(unavailability)的消息。你将会发现,为James写应用程序简直简单的令人难以置信。在这个世界上每天都有几百万人在用 E-mail ,因此其应用的可能性也远远超出了这个系列所介绍的处理方法。无论如何,我都希望这篇文章可以作为一个基础为你服务,帮你开始想像各种可能性。 E-mail 如何工作 原则上来讲,E-mail是简单的。你可以用一个邮件用户代理(mail user agent-MUA)创建带有一个或几个接收者地址的消息。有很多种形式的 MUAs 可供选择,包括基于文本的、基于Web的、还有GUI应用程序。Microsoft Outlook 和 Netscape Messenger 属于最后一种。每个e-mail 客户端都被配置为向一个邮件传输代理(mail transfer agent --MTA)发送邮件和从一个MTA获取发给某个用户地址的e-mail消息。要想这样做, 你需要在邮件服务器(技术上讲,是MTA)上有一个e-mail 账号 ,并且你能够使用标准的Ineternet协议,无论是脱线处理 e-mail (用POP3)还是把 e-mail 留在服务器上(用IMAP)。在客户端和MTA之间以及MTA和MTA之间发送邮件的协议都是简单邮件传输协议(Simple Mail Transfer Protocol-SMTP)。
Building a James application 这个系列的第二部分在你了解James基础设施的基础上实现一个实际的应用程序.
在MTA之间究竟发生了什么事情仅仅稍微有趣一点。 E-mail服务器在很大程度上依赖于DNS 和被称为邮件传输( mail transfer 或 MX)记录的e-mail-specific 记录。MX记录与用来解析URL的DNS记录稍有不同, 它还包含了一些额外的优先级信息来更高效的路由邮件。我不在这里深入研究这些细节 ,但明白DNS是成功有效的路由e-mail的关键很重要。 James 是一个 MTA, 同时JavaMail API 提供了一个 MUA的框架。在这篇文章里,我们将用JavaMail 来为我们的James 安装做一次测试。在这个系列的第二篇文章里,我们将用James Mailet API来说明如何开发你自己的James应用程序。 James 的设计目标 James的设计要满足特定的目标。例如,它完全用Java语言编码以满足最大化可移植能力的目标。它即提供了保护自身服务器环境的一些安全特性也提供了安全以实现安全的目标。 James 所具有的多线程应用程序的功能利用了很多Avalon框架提供的好处。 (Avalon 是一个Apache Jakarta 项目, 体现了Phoenix高性能服务器基础设施的一些特性。了解 Avalon对于开发James应用程序是有益但不必要的。请看 资源 部分深入学习Avalon.) James提供了一组全面的服务,包括一些仅仅在高端的或很好的邮件服务器中才能得到的。这些服务主要是用Matcher 和 Mailet APIs实现的,它们合作提供e-mail的检测和处理能力。James支持标准的e-mail协议(SMTP, POP3, IMAP),和一些其他的协议。James采用松散耦合的嵌入式设计以保证消息框架与协议无关。这是一个很好的主意,将来可以让James像大多数消息服务器一样或者支持诸如即时消息那样的消息协议。 设计组最后提出的也是最有趣的目标是mailets的概念,它为开发e-mail应用程序提供了一个基于组件生命周期和容器的解决方案。毋庸置疑,总是有可能会用到其他的MTA,比如 Sendmail。如果你想调用其他的MTA,那么你应该能够调用任何程序,并且可以操作通过的数据。 但James提供了一个通用的、简单的API实现这些目标,并且使任务更容易完成。感谢James提供的那些我们可以操作的对象,我们会在这篇文章中深入研究Matcher 和 Mailet APIs。 安装并配置James James可以从它在Apache基金会站点中的主页(参见资源 提供的链接).上获取,你应该下载最新发布的产品开始工作;在写这篇文章的时候是版本2.1.2。你可以在James主页左边的导航栏里选择 Downloads > Binaries 进入下载区。在下载区,找到Release Builds 部分并且选择James 2.1链接,根据你个人的喜好选择下载james-2.1.2.tar.gz 或者james-2.1.2.zip文件。 我们还要用JavaMail API测试我们的应用,所以你还需要下载它 (参见 资源)。现在能得到是1.3版本,文件名是 javamail-1_3.zip。当你到JavaMail的主页上时,你会注意到有到JavaBeans Activation Framework (JAF)的链接,它是JavaMail API 需要的。 (参见 资源 直接链接到JAF.) JAF 现在的发布版本是 1.0.2 ,文件名是jaf-1_0_2.zip。一旦你得到了所有这些文件,你就能够架起与James一起工作的系统了。 We'll set up a directory structure with all the elements we need for development.我们会为开发用到的所有元素设立一个目录结构。 在产品中,这种设立必须有所不同,文件的安排要综合考虑安全性和功能性两方面的问题。比如说,为了实现我们的目标,可以在本地主机上工作,但对于一个真正的e-mail服务器的部署工作来说,本地主机并不是一个可行的备选方案。如果你要为商业应用把James服务器部署为一个主MTA或与Sedmail一起工作,这里有大量的配置文档和提供帮助的邮件列表。 当所有文件都解压到James目录下后, 我们的目录层次结构将如列表1所示。我已经移走了 javadoc, src,和JavaMail webapp demo 目录下的一些子目录,以便我们的目录更紧凑和易于想像。 列表1. James, JavaMail, 和 JAF 目录 ================================================================================ James +---jaf-1.0.2 | +---demo | \---docs | \---javadocs +---james-2.1.2 | +---apps
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一页12 3 4 5 下一页
上一篇:如何用Apache James把E-mail从内网(内部局域网)发到外网(如263.net,hotmail.com) 下一篇:用apache james做简单的垃圾邮件过滤网关
|
|
|
| 【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】 |
相关文章: |
| ·SQL Server怎样配置发送电子邮件 | ·如何设置sql server中的email·新手入门:企业邮箱及邮件服务器架设·局域网内部邮件服务器架设指南·Email软件的选择·如何管理NETSCAPE 邮件服务器·中软Linux邮件系统解决方案·SQLMail的原理及实际应用·Kerio Mail Server 搭配 ClamAV杀毒引擎·Netscape Messaging Server 的使用
文章评论:(1条) |
|
|
|
|
声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。 |
|