生活随笔
收集整理的這篇文章主要介紹了
基于JavaWeb的网页版邮箱系统设计与实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
資源下載地址:https://download.csdn.net/download/sheziqiong/86790177
資源下載地址:https://download.csdn.net/download/sheziqiong/86790177
目錄
一、 項(xiàng)目選題 2
程序功能: 2
二、 開(kāi)發(fā)環(huán)境和工具 2
三、 項(xiàng)目使用說(shuō)明手冊(cè) 2
四、 系統(tǒng)結(jié)構(gòu) 2
項(xiàng)目目錄結(jié)構(gòu) 2系統(tǒng)執(zhí)行過(guò)程 3
五、 系統(tǒng)內(nèi)核心實(shí)現(xiàn) 4模塊動(dòng)態(tài)加載 4對(duì)webpage下的服務(wù)進(jìn)行掃描 4通過(guò)retr命令獲取郵件,并且通過(guò)json格式返回到web前端 5配置文件的讀取 6
六、 項(xiàng)目運(yùn)行截圖 7首頁(yè) 7郵箱郵件查詢 7郵件發(fā)送 8郵件詳情 9配置文件設(shè)置 9Web服務(wù)器錯(cuò)誤頁(yè) 10Web服務(wù)器主頁(yè) 10兩個(gè)不同的郵箱進(jìn)行測(cè)試 11
一、項(xiàng)目選題
基于實(shí)現(xiàn)的一個(gè)Web服務(wù)器的網(wǎng)頁(yè)版郵箱客戶端系統(tǒng)
項(xiàng)目中的服務(wù)器為自己實(shí)現(xiàn)的Web服務(wù)器,對(duì)http訪問(wèn)進(jìn)行響應(yīng)
項(xiàng)目中的郵箱客戶端是基于socket進(jìn)行smtp和pop3郵箱連接的客戶端實(shí)現(xiàn)
該項(xiàng)目將Web服務(wù)器和郵件客戶端兩個(gè)項(xiàng)目選題相結(jié)合
程序功能:
1.Web服務(wù)器功能對(duì)響應(yīng)的HTTP資源的請(qǐng)求和對(duì)于郵件api的訪問(wèn)給予響應(yīng)
2.郵件能夠?qū)崿F(xiàn)查詢郵件,本文轉(zhuǎn)載自http://www.biyezuopin.vip/onews.asp?id=15154查看郵件詳細(xì)信息,刪除郵件,發(fā)送郵件,郵件返回分頁(yè)等功能
3.此項(xiàng)目在163郵箱和qq郵箱測(cè)試成功
二、開(kāi)發(fā)環(huán)境和工具
系統(tǒng)環(huán)境 Windows10 1903
開(kāi)發(fā)工具 Intellij Idea Ultimate 2019、WebStorm、Chrome
jdk版本 12.0.2(如果在jdk1.8的情況下報(bào)錯(cuò),請(qǐng)按照錯(cuò)誤修改)
三、項(xiàng)目使用說(shuō)明手冊(cè)
1.使用idea加載并打開(kāi)工程
2.在serverConfig.properties文件中進(jìn)行相關(guān)的配置文件的配置
3.瀏覽器輸入http://127.0.0.1:8080/index.html進(jìn)入主頁(yè)面(如果未修改配置文件信息),輸入不存在的資源目錄則進(jìn)入錯(cuò)誤頁(yè)面
4.瀏覽器輸入http://127.0.0.1:8080/mailAgentWeb/index.html進(jìn)入郵箱客戶端web主頁(yè)面
5.在該頁(yè)面可以實(shí)現(xiàn)郵件查詢、郵件刪除、郵件詳細(xì)信息查看等功能,切換tab可以使用郵件發(fā)送功能 。
import net.sf.json.JSONObject;import java.io.*;
import java.net.Socket;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class MailAgentThread extends WebService {private InputStream in = null;private OutputStream out = null;private Map<String, String> params = null;//用來(lái)保存對(duì)應(yīng)的smtp的地址和對(duì)應(yīng)的認(rèn)證信息等private Map<String, List<String>> serverAddressInfo = null;//賬號(hào):2403116996//授權(quán)碼:xevyrfcqimxfdhiaMailAgentThread(Socket socket) {try {this.in = socket.getInputStream();this.out = socket.getOutputStream();this.params = new HashMap<>();} catch (IOException e) {e.printStackTrace();}}@Overridepublic void run() {boolean state = false;String apiInfo = readApiInfo(this.in);params.clear();if (!apiInfo.contains("?")) {System.out.println("[萬(wàn)惡之原]mailAgentService請(qǐng)求中未帶有參數(shù)!");reportError();return;}for (String item : apiInfo.split("\\?")[1].split("&")) {params.put(item.split("=")[0], item.split("=")[1]);}String serverName = params.get("username").split("@")[1];params.put("username", params.get("username").split("@")[0]);MailAgent mailAgent = new MailAgent("smtp." + serverName);state = mailAgent.login(params.get("username"), params.get("password"));if (!state) {System.out.println("[mailAgentService]服務(wù)中賬號(hào)密碼登陸失敗!");reportError();return;}if (!params.containsKey("type")) {reportError();return;}if (params.get("type").equals("send")) {state = mailAgent.sendMail(params);if (state) {String result = "HTTP/1.1 200 ok \n" +"Content-Type: text/html \n" +"Access-Control-Allow-Origin: *\n";try {this.out.write(result.getBytes());out.flush();out.close();} catch (IOException e) {e.printStackTrace();}}} else if (params.get("type").equals("query")) {//todo:這里是查詢郵件的業(yè)務(wù)邏輯String mailJson = mailAgent.queryMail(params);String result = "HTTP/1.1 200 ok \n" +"Content-Type: application/json;charset=UTF-8 \n" +"Access-Control-Allow-Origin: *\n" +"\n" + mailJson;try {out.write(result.getBytes());out.flush();out.close();} catch (IOException e) {e.printStackTrace();}}else if (params.get("type").equals("delete")){JSONObject json = new JSONObject();state = mailAgent.deleteMail(params);json.put("deleteState",state);String result = "HTTP/1.1 200 ok \n" +"Content-Type: application/json;charset=UTF-8 \n" +"Access-Control-Allow-Origin: *\n" +"\n" + json.toString();try {out.write(result.getBytes());out.flush();out.close();} catch (IOException e) {e.printStackTrace();}}}private void reportError() {String result = "HTTP/1.1 400 ok \n" +"Content-Type: text/html \n" +"Access-Control-Allow-Origin: *\n";try {this.out.write(result.getBytes());out.flush();out.close();} catch (IOException e) {e.printStackTrace();}}
}
資源下載地址:https://download.csdn.net/download/sheziqiong/86790177
資源下載地址:https://download.csdn.net/download/sheziqiong/86790177
總結(jié)
以上是生活随笔為你收集整理的基于JavaWeb的网页版邮箱系统设计与实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。