由于好多郵件服務(wù)器(163,sina,yahoo)都對郵件發(fā)送有限制,比如163的郵箱,新注冊的用戶是不可以利用客戶端程序訪問郵箱,所以很郁悶,好多學(xué)生都不知道是怎么回事,開始的時候我也不知道,在網(wǎng)上找了n久才知道這鳥情況。無語,學(xué)生的prj課要用到發(fā)郵件那怎么辦啊學(xué)校機房又沒聯(lián)網(wǎng),所以就想自己弄一個郵件服務(wù)器,讓學(xué)生們玩玩。
哎,搞了好久終于把apache james郵件服務(wù)器配置完成(并且通過測試)。高興中。。。,終于可以讓學(xué)生用自己配置的郵件服務(wù)器了。其實整個配置過程是很簡單的,但由于客戶端程序的設(shè)置失誤弄得我郁悶了好幾個小時。而且昨天晚上電腦又不爭氣,老是自動關(guān)機。搞得我無語只好回家睡覺,但晚上睡到半夜都醒來了,都這鳥問題害的。我這個人就是這樣的,如果一個問題沒解決,半夜都會醒來想想的,哎,這毛病真不好。不說多了,反正是在高興中。。。現(xiàn)在還是來說說配置:
?????????????????????????????????????????????????????? 1: 服務(wù)器端配置
一:先是到apache的網(wǎng)站上面下載一個james-binary-2.3.1.zip的包。
二:解壓后找到里面的bin目錄,運行里面的run.bat(前提是java的環(huán)境變量要配置好了。JAVA_HOME的配置方式)這里就不講java環(huán)境變量的配置了。
三:運行完后,會在apps中多出一個james的目錄。打開到里面找到SAR-INF文件夾里面的config.xml配置文件--打開
四:現(xiàn)在我們就開始修改config文件的內(nèi)容了。找到<postmaster>Postmaster@localhost</postmaster>我們把localhost改為:liuxiang.com(名字自己取)
五:<servername>localhost</servername>把localhost改為同上。( 這里主要是用于 帳號@liuxiang.com)
六:<servernames autodetect="true" autodetectIP="true">把兩個true都該為false不讓郵件服務(wù)器自動偵測ip
七:注釋掉 <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
????????????<processor> relay-denied </processor>
????????????<notice>550 - Requested action not taken: relaying denied</notice>
???????? </mailet>
八:去掉<authRequired>true</authRequired>的注釋,用郵件服務(wù)器發(fā)送郵件必需驗證。
九:啟動服務(wù)器。再打開cmd窗口通過telnet localhost 4555 登錄到郵件服務(wù)器。用戶名root密碼一樣
十:添加賬戶:adduser liuxiang??1234(輸入help 就會把郵件服務(wù)器的所有命令顯示給我們看)
???????????????????????????????????????????????????? 2:客戶端配置
根據(jù)剛剛我們服務(wù)器的配置,我們再來用foxmail的配置:
電子郵件地址:liuxiang@liuxiang.com
密碼:1234
注意pop3服務(wù)器只能是自己的ip。(在cmd窗口輸入ipconfig就可以看到我們自己的ip)
smtp服務(wù)器同上,自己的ip。
這樣就配置成功了。
用java程序?qū)憇mtp客戶端。properties的設(shè)置如下:
Properties props = new Properties();
?? // 傳輸用的協(xié)議smtp
?? props.put("mail.transport.protocol", "smtp");
?? // 利用那個郵件服務(wù)發(fā)送
?? props.put("mail.smtp.host", "192.168.0.34");自己的ip
?? // 發(fā)送的端口號
?? props.put("mail.smtp.port", "25");
?? // 是否要驗證
?? props.put("mail.smtp.auth", "true");
收郵件更加容易:
Session session = Session.getInstance(p, null);
??Store store = null;
?? store = session.getStore("pop3");
?? store.connect("192.168.0.34", "liuxiang","1234");
通過這樣我們可以對內(nèi)網(wǎng)發(fā)送,也可以對外網(wǎng)發(fā)送,比如163。我測試通過。完。太容易了。
主要注意點就是pop3和smtp服務(wù)器的地址。
