由于好多郵件服務(wù)器(163,sina,yahoo)都對(duì)郵件發(fā)送有限制,比如163的郵箱,新注冊(cè)的用戶是不可以利用客戶端程序訪問(wèn)郵箱,所以很郁悶,好多學(xué)生都不知道是怎么回事,開(kāi)始的時(shí)候我也不知道,在網(wǎng)上找了n久才知道這鳥(niǎo)情況。無(wú)語(yǔ),學(xué)生的prj課要用到發(fā)郵件那怎么辦啊學(xué)校機(jī)房又沒(méi)聯(lián)網(wǎng),所以就想自己弄一個(gè)郵件服務(wù)器,讓學(xué)生們玩玩。
哎,搞了好久終于把a(bǔ)pache james郵件服務(wù)器配置完成(并且通過(guò)測(cè)試)。高興中。。。,終于可以讓學(xué)生用自己配置的郵件服務(wù)器了。其實(shí)整個(gè)配置過(guò)程是很簡(jiǎn)單的,但由于客戶端程序的設(shè)置失誤弄得我郁悶了好幾個(gè)小時(shí)。而且昨天晚上電腦又不爭(zhēng)氣,老是自動(dòng)關(guān)機(jī)。搞得我無(wú)語(yǔ)只好回家睡覺(jué),但晚上睡到半夜都醒來(lái)了,都這鳥(niǎo)問(wèn)題害的。我這個(gè)人就是這樣的,如果一個(gè)問(wèn)題沒(méi)解決,半夜都會(huì)醒來(lái)想想的,哎,這毛病真不好。不說(shuō)多了,反正是在高興中。。。現(xiàn)在還是來(lái)說(shuō)說(shuō)配置:
?????????????????????????????????????????????????????? 1: 服務(wù)器端配置
一:先是到apache的網(wǎng)站上面下載一個(gè)james-binary-2.3.1.zip的包。
二:解壓后找到里面的bin目錄,運(yùn)行里面的run.bat(前提是java的環(huán)境變量要配置好了。JAVA_HOME的配置方式)這里就不講java環(huán)境變量的配置了。
三:運(yùn)行完后,會(huì)在apps中多出一個(gè)james的目錄。打開(kāi)到里面找到SAR-INF文件夾里面的config.xml配置文件--打開(kāi)
四:現(xiàn)在我們就開(kāi)始修改config文件的內(nèi)容了。找到<postmaster>Postmaster@localhost</postmaster>我們把localhost改為:liuxiang.com(名字自己取)
五:<servername>localhost</servername>把localhost改為同上。( 這里主要是用于 帳號(hào)@liuxiang.com)
六:<servernames autodetect="true" autodetectIP="true">把兩個(gè)true都該為false不讓郵件服務(wù)器自動(dòng)偵測(cè)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ā)送郵件必需驗(yàn)證。
九:?jiǎn)?dòng)服務(wù)器。再打開(kāi)cmd窗口通過(guò)telnet localhost 4555 登錄到郵件服務(wù)器。用戶名root密碼一樣
十:添加賬戶:adduser liuxiang??1234(輸入help 就會(huì)把郵件服務(wù)器的所有命令顯示給我們看)
???????????????????????????????????????????????????? 2:客戶端配置
根據(jù)剛剛我們服務(wù)器的配置,我們?cè)賮?lái)用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");
?? // 利用那個(gè)郵件服務(wù)發(fā)送
?? props.put("mail.smtp.host", "192.168.0.34");自己的ip
?? // 發(fā)送的端口號(hào)
?? props.put("mail.smtp.port", "25");
?? // 是否要驗(yàn)證
?? 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");
通過(guò)這樣我們可以對(duì)內(nèi)網(wǎng)發(fā)送,也可以對(duì)外網(wǎng)發(fā)送,比如163。我測(cè)試通過(guò)。完。太容易了。
主要注意點(diǎn)就是pop3和smtp服務(wù)器的地址。
