一、簡介
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>Postmaster@localhost</postmaster>,把此項改為<postmaster>Postmaster@unitname</postmaster>,同理,找到<servername>localhost</servername>,把此項改為<servername>unitname</servername>。其實,改這兩項就是把預設的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 user's password setalias [alias] [user] locally forwards all email for 'alias' t o 'user' unsetalias [alias] unsets an alias setforwarding [username] [emailaddress] forwards a user's 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 |
四、FAQ1、 在啟動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進行相應的封裝,主要是後台管理這一塊。 六、參考資料James 2.1 Documentation |