1. 程式人生 > >區域網中搭建James伺服器並實現與外網收發郵件

區域網中搭建James伺服器並實現與外網收發郵件


一、準備工作
區域網中有兩臺電腦都用Windows XP SP2系統+JDK1.6.0_02,一臺PCA,一臺PCB,PCA當伺服器,PCB當客戶端測試用,當然PCA也可同時充當客戶端。
Apache James(Java Apache Mail Enterprise Server)是Apache組織的子專案之一,完全採用純Java技術開發,實現了SMTP、POP3與NNTP等多種郵件相關協議。
James也是一個郵件應用平臺,可以通過Mailet擴充其功能,如Mail2SMS、Mail2Fax等。James提供了比較完善的配置方案,尤其是關於郵件內容儲存和使用者資訊儲存部分,可以選擇在檔案、資料庫或其他介質中儲存。
James效能穩定、可配置性強,還是開源專案,所有原始碼不存在版權問題,因此,James在專案中的應用日益廣泛,現在常用版本為2.1,但最新版本2.3已經推出,在本文中,我們將仍以james-2.3.1作為介紹藍本。
二、安裝與配置
James的安裝配置過程非常簡單。
第一步:安裝JDK並配置JAVA_HOME
請使用JDK1.3以上版本(在此使用jdk1.6.0_02),假設安裝在D:/installed tools/Java/jdk1.6.0_02,配置java_home在此就不多說了。
第二步:下載James,並解壓
可以到Apache網站上下載最新版本james-2.3.1,下載將得到一個壓縮檔案james-2.3.1.zip,大小為4.45M,將此包解壓到D:/installed tools/james-2.3.1.
第三步:直接雙擊執行D:/installed tools/james-2.3.1/bin/run.bat,若啟動無誤,將提示如下

C:/Documents and Settings/Administrator>run
Using PHOENIX_HOME:   E:/Program Files/james-2.3.1
Using PHOENIX_TMPDIR: E:/Program Files/james-2.3.1/temp
Using JAVA_HOME:      E:/Program Files/Java/jdk1.6.0_02

Phoenix 4.2

James Mail Server 2.3.1
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service started plain:119
FetchMail Disabled

也有可能啟動不了,並報JAVA_HOME找不到,如果沒有配置JAVA_HOME需要指定JAVA_HOME,或者另一比較簡單的方法是在 D:/installed tools/james-2.3.1/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= D:/installed tools/Java/jdk1.6.0_02
if not "%JAVA_HOME%"=="" goto found_java
……
修改完後再執行run.bat,應該就可以正常啟動了,如果再出現什麼問題就再去官方查詢解決了。
三、
a.伺服器端配置
啟動過一次後就使用Ctrl+C強行關閉James伺服器並進行下面的配置。首先找出PCA的計算機名,假設叫xiaochong,然後開啟檔案 D:/installed tools/james-2.3.1/apps/james/SAR-INF/config.xml。
在config.xml檔案中,找 到<postmaster>

[email protected]</postmaster>,把此項改 為<postmaster>[email protected]</postmaster>,同理,找 到<servername>localhost</servername>,
把此項改為<servername>xiaochong</servername>。其實,改這兩項就是把預設的localhost改為計算機名,這樣做是為了讓其它機器也能訪問郵件系統,當然前提是在區域網上沒有與伺服器重名的機器。
在PCA上進入命令列模式登入james伺服器建立兩個新賬戶,一個是abc,另一個是def.
命令如下:
telnet 192.168.1.102 4555(登入james伺服器利用telnet命令192.168.102是PCA的IP地址,4555是james伺服器預設的登入埠)
adduser abc 123(新增新郵箱使用者abc與def密碼都是123)
adduser def 123
quit(退出james伺服器,不主動退出過一分鐘後會自動超時退出)
b.客戶埠配置
在PCB中使用foxmail為客戶埠郵件收發軟體,建立設定好
[email protected]
[email protected]使用者後可以測試收發郵件了。注 意在foxmail中配置時:郵件傳送SMTP與接收伺服器POP3都只填寫PCA的IP地址(即james伺服器所在電腦的IP地址)
四、深入配置實現與外網聯通收發郵件。
1.開啟james-2.2.0/apps/james/SAR-INF/config.xml檔案
2.註釋掉以下程式碼
<!--mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
           <processor> relay-denied </processor>
            <notice>550 - Requested action not taken: relaying denied</notice>
         </mailet-->
註釋掉此程式碼後下面將要使用smtp認證方式。
3.配置dnsserver
輸入自己上網時獲得的運營商分配的DNS地址,配置後如:
<server>127.0.0.1</server>
<server>219.150.32.132</server>
如果只是內網使用只需保留啟用<server>127.0.0.1</server>即可。
需要設定 <autodiscover>true</autodiscover>改為false如果設定為自動探測的話,在我的機器上會報錯:
James.Mailet: RemoteDelivery: Temporary exception delivering mail (Mail1098776398187-0-to-somedomain.com: javax.mail.MessagingException: There are no DNS entries for the hostname somedomain.com. I cannot determine where to send this message.
at org.apache.james.transport.mailets.RemoteDelivery.deliver(RemoteDelivery.java:398)
at org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:912)
at java.lang.Thread.run(Thread.java:534)
4.修改root口令。account login="root" password="mypassword"此項不修改也沒關係。
5.smtpserver開啟smtp認證
將<authRequired>false</authRequired>改為<authRequired>true</authRequired>
6.重新啟動James就生效了,就可以向163及其它網際網路郵件伺服器傳送郵件了。

五、常見問題
1、 在啟動james時,提示POP3或SMTP不能使用?
請檢查一下,看“管理工具—>服務”裡面,是不是啟動了別的郵件伺服器,已將110或25端口占用了。
我在安裝配置james時就遇到滿滿一屏錯誤就是因為我將windowsXP 中IIS服務自帶的SMTP服務開啟了,關閉後正常。
2、 JAVA_HOME找不到?
請在run.bat中指定JAVA_HOME,若還不行,請在“我的電腦—>系統—>高階—>環境變數”中新增一項JAVA_HOME(最好是用前一種方法)。
3、伺服器啟動正常,但客戶端不能收發郵件?
請檢查客戶端配置是否正常,參照前面所講,另外,請檢查james下的config.xml,是否把localhost改成了機器名。

六、
JAMES伺服器的帳號管理
James的賬號管理是通過telnet完成的,登入命令為:
telnet unitname 4555
其中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。
通過這個後臺管理介面,管理員就可以實現賬號管理及其他相應的管理功能。

總結:
總體而言,James是一款十分優秀的郵件伺服器,具有效能穩定、擴充套件性好、可配置性強、響應速度快、原始碼公開等優點。同時,由於James的後臺管理不夠方便、缺少必要的技術支援等原因,限制了james的高階企業級應用。
就目前情況而言,James主要用於1000使用者量以內的郵件系統,而且當James用於商業性專案時,開發商一般需要對James進行相應的包裝,主要是後臺管理這一塊。

相關推薦

區域網搭建James伺服器實現收發郵件

一、準備工作 區域網中有兩臺電腦都用Windows XP SP2系統+JDK1.6.0_02,一臺PCA,一臺PCB,PCA當伺服器,PCB當客戶端測試用,當然PCA也可同時充當客戶端。 Apache James(Java Apache Mail Enterprise S

java -Mac搭建本地伺服器對映到

最近在學習Html,小有進步變想著寫一個浪漫的靜態頁面給女朋友浪漫一下,那麼問題就來了,如何把我的網頁讓對網路一竅不通的女朋友看到,所以便想到了是用自己電腦作為伺服器的想法.百度以後整理如下: 首先搭建本地伺服器Mac自帶Apache伺服器,所以比較簡單一: 開啟終端 //開啟apache:需要輸入密碼s

安裝centos系統,搭建LAMP伺服器使其可見

一,安裝centos 7 系統 1.   U盤製作啟動盤 l  下載UltraISO: l  開啟軟碟通,檔案->開啟,開啟需要安裝的iso映象 l  選擇你自己啟動U盤 l  點選啟動->寫入硬碟映像 l  寫入方式選擇USB-HDD+ l  便捷啟動-&

在arm Cortex-A9開發板移植rtl8821au無線絡卡實現通訊

開發板:Xilinx ZC702 嵌入式系統:linux4.4 交叉編譯器:arm-xilinx-linux-gnueabi-gcc WIFi工具:wireless_tools.30.rtl 驅動版本:rtl8821AU_WiFi_linux_v5.2.6.2_23547.

在Centos7上搭建SVN伺服器實現自動同步至web目錄

前言: 由於最近跟學長一起合作完成一個小專案,然後我倆比較熟悉的版本控制是SVN,就考慮著在伺服器上搭建一個SVN伺服器。現在在這裡給出簡單的搭建過程。 (其實吧,能用git就儘量用git吧,好處自己百度,有關搭建請參考我的另一篇部落格搭建伺服器上的GIT並

通過MailServer和Foxmail搭建本地郵件伺服器實現本地郵箱賬號收發郵件

 臨近期末,要求小組提交一個專案,而我們小組選擇的是一個Java web專案,在該專案中需要給每個新註冊的使用者傳送一封啟用賬戶的啟用郵件。所以我就去網上搜索怎麼利用MailServer和Foxmail搭建本地郵件伺服器及實現本地郵箱賬號收發郵件,結果搜尋到的教程都不詳細,讓我久久而不得其法。最終我結合那些教

怎樣在Win7系統搭建Web伺服器區域網訪問

第一步:開啟控制面板 第二步:進入<程式> 第三步:開啟或關閉windows功能 第四步:點選展開Internet資訊服務,全部都選中 第五步:關閉防火牆,並開啟全球資訊網服務(http)

Win10系統VirtualBox路橋接主機直鏈同一wifi區域網互通可連線

VirtualBox的網路設定有好幾種模式, 現在需求是: 將虛擬機器和主機都直連到wifi路由器使兩者處於同一區域網段中, 並都可以訪問外網. 網上找了好多篇文章發現要麼是版本差別, 要麼是沒有實現效果, 最後自己折騰了半天終於實現了 無圖無真相, 先上最

【中期檢查】 搭建Android伺服器瀏覽器互動總結一

最近在寫優麒麟手機助手這個專案,優麒麟手機助手是Ubuntu Kylin組織的開源專案: 在Windows平臺上有眾多的安卓手機管理工具,如360手機助手、騰訊手機管家、豌豆莢等,但是在Linux平臺下卻鮮有功能強大的客戶端出現。為了一解我等Linuxer在學習

windows下搭建nginx服務實現基於埠路徑轉發

windows下搭建nginx nginx下載 nginx使用 nginx不能通過雙擊nginx.exe啟動,需要在cmd命令列中通過命令啟動。 啟動cmd命令列,進入nginx所在路徑 啟動命

用ESP8266 WIFI模塊連接服務器,實現服務器相互通訊

很多 底層 同學 繼續 image 要求 png 工具 網絡調試   最近在做一個智能鎖的項目,該項目要求實現在任何地方(當然是要有網絡的)可以在手機上用APP開鎖。而我負責的部分主要是實現底層與服務器連接,並且要能相互通訊。考慮了很多問題,最終選擇了用ESP826

html提交表單實現不跳轉頁面處理返回值

html value put 提示 pan sdn type detail all <html> <head> <script type="text/javascript" src="h

win7系統搭建FTP伺服器

  FTP是檔案傳輸協議(File Transfer Protocol)的簡稱,該協議屬於應用層協議(埠號通常為21),用於Internet上的雙向檔案傳輸(即檔案的上傳和下載)。在網路上有很多伺服器提供FTP服務,用來存放大量的檔案供他人下載。FTP服務的主要作用是讓遠端使用者可以連

怎樣在Win7系統搭建Web伺服器

區域網Web伺服器的主要功能是實現資源共享,同時藉助於區域網伺服器訪問頁面可有效的實現資訊的同步。利用Web伺服器,我們隨時隨地都可以將自己的資訊上傳到伺服器端,讓其它關注你的使用者能在第一時間內瞭解的思想和動態。下面筆者就如何在Windows7系統下搭建Web伺服器與大家交流一下。 方

CENTOS7部署LDAP伺服器實現RUNDECK的登陸認證

系統環境:centos7 1、關閉SELINUX和防火牆 setenforce 0 修改/etc/selinux/config SELINUX=disabled service firewalld stop chkconfig firewalld off 2、安裝軟體 yum -y inst

linux搭建HTTP伺服器

WEB的概念 web是一種互動式圖形式介面的Internet服務,有強大的資訊連線功能,通過超文字連結( HyperText ) 的 方式,將資訊通過 Internet 傳遞到全球每個角落!一般情況下,終端使用者通過瀏覽器輸入比較完整的URL即可以完成訪問。 HTTP服務原理 分為四個步驟:

linux搭建SAMBA伺服器

1、Samba,是在Unix上實現SMB(Server Message Block)的一個工具套件。而SMB通常是windows用來實現共享的,包括檔案和印表機等。而Unix上裝上SMB,則使得Unix能夠和 windows連線在一起,實現兩者的資源互通。 安裝配置samba伺服器 關閉防火

linux搭建NFS伺服器

NFS是Network File System(網路檔案系統)。主要功能是通過網路讓不同的伺服器之間可以共享檔案或者目錄。NFS客戶端一般是應用伺服器(比如web,負載均衡等),可以通過掛載的方式將NFS伺服器端共享的目錄掛載到NFS客戶端本地的目錄下 NFS 的基本原則是“允許不同的客

linux搭建DHCP伺服器

動態主機配置協議DHCP(Dynamic Host Configuration Protocol)是一種用於集中對使用者IP地址進行動態管理和配置的技術。 工作原理 1.客戶端開機沒有IP,區域網內需要傳送一個廣播形式的DISCOVER(區域網內不知道誰是DHCP伺服器),只要能收到的DH

Linux搭建DNS伺服器

DNS(Domain Name Ststem) 域名解析服務,就是將域名和ip之間做相應的轉換,利用TCP和UDP的53號埠 程式RPM包名:  bind  可執行檔案所在目錄: /usr/sbin/named (Rhel7)     /etc/init.d/named (