一、簡介
Apache James(Java Apache Mail Enterprise Server)是Apache組織的子項目之一,完全采用純Java技術開發,實現了SMTP、POP3與NNTP等多種郵件相關協議。
James也是一個郵件應用平臺,可以通過Mailet擴充其功能,如Mail2SMS、Mail2Fax等。James提供了比較完善的配置方案,尤其是關于郵件內容存儲和用戶信息存儲部分,可以選擇在文件、數據庫或其他介質中保存。
James性能穩定、可配置性強,還是開源項目,所有源代碼不存在版權問題,因此,James在項目中的應用日益廣泛,現在常用版本為2.1,但最新版本2.3已經推出,在本文中,我們將仍以James2.1作為介紹藍本。
二、安裝與配置
James的安裝配置過程非常簡單。
第一步:安裝JDK
請使用JDK1.3以上版本(推薦使用JDK1.4),假設安裝在c:\jdk1.3。
第二步:下載James,并解壓
可以到Apache網站上下載James2.1,下載將得到一個壓縮文件james-2.1.zip,大小為4.45M,將此包解壓到c:\james。
第三步:直接運行或需要配置JAVA_HOME
這時,可以嘗試直接雙擊c:\james\bin\run.bat,若啟動無誤,將提示如下:
Using PHOENIX_HOME: C:\james
Using PHOENIX_TMPDIR: C:\james\temp
Using JAVA_HOME:
Phoenix 4.0.1
James 2.1
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service Disabled
Fetch POP Disabled |
也有可能啟動不了,并報JAVA_HOME找不到,這時,需要指定JAVA_HOME,比較簡單的方法是在c:\james\bin\run.bat中指定JAVA_HOME,修改后的run.bat如下:
……
rem
rem Determine if JAVA_HOME is set and if so then use it
rem
set JAVA_HOME= c:\jdk1.3
if not "%JAVA_HOME%"=="" goto found_java
…… |
修改完后再運行run.bat,應該就可以正常啟動了,若還有什么問題,請參見本文的FAQ部分。
三、項目應用
1、 項目需求
某單位,有16個職能處室,共78臺電腦(操作系統為Win98/2000/xp),其中有1臺為專用服務器(Win2000),已連成局域網。為使單位內部的信息交流,尤其是文件交互更加便捷,單位決定在局域網內部架設一套E-mail系統。
2、 解決方案
在專用服務器上安裝James2.1,客戶端使用操作系統自帶的Outlook Express。
3、 服務器端配置
首先找出專用服務器的名字,假設叫unitname。
然后打開文件c:\james\apps\james\SAR-INF\config.xml。
在config.xml文件中,找到
Postmaster@localhost,把此項改為
Postmaster@unitname,同理,找到localhost,把此項改為unitname。其實,改這兩項就是把默認的localhost改為機器名,這樣做是為了讓其它機器也能訪問郵件系統,當然,前提是在局域網上沒有與服務器重名的機器。
4、 客戶端配置
假設有一個賬號,用戶名為holen,密碼為123456,如何在Outlook中配置呢?
首先,根據用戶名,可以得出該用戶郵箱地址為holen@unitname ,然后在輸入POP3和SMTP服務器時,直接使用服務器機器名unitname即可。
5、 帳號管理
James的賬號管理是通過telnet完成的,登錄命令為:
其中unitname也可以換成IP,4555是端口號。登錄時需要用戶名和密碼,初始的用戶名和密碼均為root。若登錄成功,提示如下:
JAMES Remote Administration Tool 2.1
Please enter your login and password
Login id:
Password:
Welcome root. HELP for a list of commands |
需要注意的是,所有敲入的命令都不顯示在屏幕上。
輸入help,將出現命令的幫助,信息如下:
JAMES Remote Administration Tool 2.1
Please enter your login and password
Login id:
Password:
Welcome root. HELP for a list of commands
Currently implemented commands:
help display this help
listusers display existing accounts
countusers display the number of existing accounts
adduser [username] [password] add a new user
verify [username] verify if specified user exist
deluser [username] delete existing user
setpassword [username] [password] sets a users password
setalias [alias] [user] locally forwards all email for alias t
o user
unsetalias [alias] unsets an alias
setforwarding [username] [emailaddress] forwards a users email to another email
address
unsetforwarding [username] removes a forward
user [repositoryname] change to another user repository
shutdown kills the current JVM (convenient when J
ames is run as a daemon)
quit close connection |
常用的命令有listusers、countusers、adduser、deluser、setpassword等。
其中添加用戶為adduser,例如:adduser holen 123456。
通過這個后臺管理界面,管理員就可以實現賬號管理及其他相應的管理功能。
6、 應用情況
這套系統在該單位經過一周的試運行后,已正式運行兩個月,用戶數約百人,一直很穩定,期間,因操作系統故障,服務器重啟兩次,其他時間,一直處于運行狀態,性能穩定,響應速度快。
四、FAQ
1、 在啟動james時,提示POP3或SMTP不能使用?
請檢查一下,看“管理工具—>服務”里面,是不是啟動了別的郵件服務器,已將110或25端口占用了。
2、 JAVA_HOME找不到?
請在run.bat中指定JAVA_HOME,若還不行,請在“我的電腦—>系統—>高級—>環境變量”中添加一項JAVA_HOME(一般不推薦這么做)。
3、 服務器啟動正常,但客戶端不能收發郵件?
請檢查客戶端配置是否正常,參照前面所講,另外,請檢查james下的config.xml,是否把localhost改成了機器名。
五、總結
總體而言,James是一款十分優秀的郵件服務器,具有性能穩定、擴展性好、可配置性強、響應速度快、源碼公開等優點。同時,由于James的后臺管理不夠方便、缺少必要的技術支持等原因,限制了james的高端企業級應用。
就目前情況而言,James主要用于1000用戶量以內的郵件系統,而且當James用于商業性項目時,開發商一般需要對James進行相應的包裝,主要是后臺管理這一塊。