James Email Server 概念--1.摘要。
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和停止服務.
一個駐扎在天津的普通程序員,當個PM,TL,CODER 就是沒有當過CEO。
My idiom:Where there is a will,there is a way!
注:加班寫作,轉載請著名出處!!