999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JSP的電子郵件系統的設計與實現

2008-12-31 00:00:00楊志成
電腦知識與技術 2008年35期

摘要:闡述了在JSP的應用程序中,實現電子郵件收發的一般原理、方法及具體的程序實現,該郵件應用的特點在于能在應用軟件系統中自動發送和接收電子郵件,該郵件收發系統可掛接在任意JSP應用軟件中,具有一定實用價值。通過實驗驗證,該系統具有通用性。

關鍵詞:JSP; 電子郵件;pop3

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)35-2294-04

The Design and Realization of Email System based on JSP

QIN Chuan1, YANG Zhi-cheng2

(1. Jiangxi Radio and TV University Classes Nanchang City Branch School,Nanchang 330003,China; 2. Jiangxi Modern Colleage,Nanchang 330003,China)

Abstract: This paper introduces a general principle and method of email system in JSP application, and its kernel program is also provided. The outstanding characteristics of this email application is that it can send and accept email automatically in software systems. This email application module can be embedded in any JSP internet applications and with some practical value. This system is testified to be commonly used.

Key words: JSP; Email; POP3

1 引言

電子郵件翻譯自英文的email或e-mail,它表示通過電子通訊系統進行信件的書寫、發送和接收。今天使用的最多的通訊系統是互聯網,同時電子郵件也是互聯網上作受歡迎的功能之一。通過電子郵件系統,您可以用非常低廉的價格(不管發送到哪里,都只需負擔電話費和網費即可),以非??焖俚姆绞剑◣酌腌娭畠瓤梢园l送到世界上任何你指定的目的地),與世界上任何一個角落的網絡用戶聯絡系,這些電子郵件可以是文字、圖像、聲音等各種方式。同時,您可以得到大量免費的新聞、專題郵件,并實現輕松的信息搜索。這是任何傳統的方式也無法相比的。正是由于電子郵件的使用簡易、投遞迅速、收費低廉,易于保存、全球暢通無阻,使得電子郵件被廣泛地應用,它使人們的交流方式得到了極大的改變。

早在互聯網流行以前很久,電子郵件就已經存在了,是在主機-多終端的主從式體系中從一臺計算機終端向另一計算機終端傳送文本信息的相對簡單的方法而發展起來的。經歷了漫長的過程之后,它現在已經演變成為一個更加復雜并豐富得多的系統,可以傳送聲音、圖片、圖像、文檔等多媒體信息,以至于如數據庫或賬目報告等更加專業化的文件都可以電子郵件附件的形式在網上分發?,F在,電子郵件已成為許多商家和組織機構的生命血脈。用戶可以通過電子郵件的討論會進行項目管理,并且有時要根據快速,或洲際的電子郵件信息交換進行重要的決策行動。但毫無疑問的是,互聯網擴展了其應用的范圍。過去只能在其局域網上進行交談的公司現在可以通過網絡與他們的客戶、競爭伙伴和世界上的任何人進行通信和交流。一旦某個組織的電子郵件系統運行在支持TCP/IP協議的網絡上或具有支持兩個互聯網郵件服務協議SMTP(簡單郵件傳輸協議)和POP(郵局協議)之一的互聯網網關,它的郵件用戶就能夠連接到任何具有相似連接的電子郵件地址上了,并且不論其電子郵件賬戶在何處。

2 電子郵件收發系統框架流程

2.1 客戶端的框架流程

圖1為客戶端流程圖。

導航框架頁面除了上面的內容外,還包括顯示總郵件數和未讀郵件數等功能。

2.2 顯示郵件流程

圖2為顯示郵件流程圖。

2.3 創建編輯發送郵件流程

圖3為發送郵件流程圖。

3 登錄POP3服務器上的郵件帳號

Login.jsp提供了用戶登錄POP3服務器的網頁。通過正確的服務器地址和郵件帳號密碼可連接到POP3服務器上的郵件帳號。

連接到POP3服務器代碼如下:

<%

Session mailsession=1;

Store store=1;

String pop3server=1;

String username=1;

String email=1;

String password=1;

String smtpserver=1;

try{

pop3server=(String)request.getParameter(\"pop3server\");

username=(String)request.getParameter(\"username\");

password=(String)request.getParameter(\"password\");

email=(String)request.getParameter(\"email\");

smtpserver=(String)request.getParameter(\"smtpserver\");

Properties props=new Properties();

props.put(\"mail.store.protocol\", \"pop3\");//指定郵件接受協議

// Get a Session object

mailsession = Session.getDefaultInstance(props, 1);

// Get a Store object

store = mailsession.getStore(\"pop3\");

// Connect

store.connect(pop3server,username,password);

System.out.println(\"Connect Successs!\");

}

catch(Exception e)

{

request.setAttribute(\"loginfail\",\"true\");

%>

<%

}

%>

<%

//save information into context

context.setPop3server(pop3server);

context.setUsername(username);

context.setPassword(password);

context.setEmail(email);

context.setSmtpserver(smtpserver);

// save stuff into MUD

mud.setSession(mailsession);

mud.setStore(store);

Folder inbox;

inbox=store.getFolder(\"inbox\");

//Folder inbox=store.getDefaultFolder().getFolder(\"index\");;

inbox.open(Folder.READ_WRITE);

//save draft into MUD

URLName url = new URLName(\"pop3\",pop3server, -1, \"inbox\", username, password);

mud.setURLName(url);

mud.setCurrFolder(inbox);

%>

如果Mail服務器連接失敗,connect.jsp在request對象中設置的loginfail屬性,再把請求轉發給login.jsp,login.jsp將顯示登錄失敗信息,如圖5所示。

4 管理郵件系統

管理郵件實現了對郵件刪除操作。Java Mail API的Message類沒有直接提供刪除郵件的方法,如果要刪除郵件,首先把Message的DELETED標志設為true,然后調用郵件所在郵件夾Folder的expunge方法,該方法刪除郵件夾中所有DELETED標志為true的郵件。

在doDeleteMessge方法中,如果郵件不在Trah郵件夾中,首先把這個郵件在Trash郵件夾中備份,然后把原來郵件的DELETED標志設為true;如果郵件在Trash中,就直接把郵件的DELETED標志設為true。兩種情況下最后都調用待刪除郵件所在郵件夾的expunge方法,該方法能夠刪除郵件夾總所有DELETED標志設為true的郵件。

public void doDeleteMessage(int arrayOpt[],Folder f)throws Exception {

for(int i=0;i

if(arrayOpt[i]==0)continue;

Message msg=f.getMessage(i+1);

if(!f.getName().equals(\"Trash\")){

Message[] m=new Message[1];

m[0]=msg;

Folder Trash=store.getFolder(\"Trash\");

f.copyMessages(m,Trash);

msg.setFlag(Flags.Flag.DELETED, true);

}else{

msg.setFlag(Flags.Flag.DELETED, true);

}

}

f.expunge();

}

以上doDeleteMessage方法的arrayOpt參數用來指定刪除郵件夾中哪些郵件,例如,如果arrayOpt[5]=1,表示需要刪除郵件夾中第5封郵件;如果arrayOpt[5]=0,表示不需要刪除這封郵件。

5 顯示郵件系統

顯示郵件系統通過登錄POP3服務器獲取郵件列表,并顯示總郵件數和未讀郵件數。通過主題連接可以顯示該郵件的詳細信息。該功能能顯示復合郵件。

圖6 顯示郵件列表圖7 顯示郵件內容

顯示復合郵件主要代碼如下:

Object content=\"\";

//判斷該郵件類型是否為text or plain

if((msg.isMimeType(\"text/plain\")||msg.isMimeType(\"text/html\")) (content!=1))

{

text=(String)content;

}

//判斷該郵件是否為復合郵件

if(msg.isMimeType(\"multipart/*\"))

{

Multipart mp = (Multipart)content;

int cnt = mp.getCount();

for (int i = 0; i < cnt; i++)

{

text=text+getPart(mp.getBodyPart(i), i, 2,2);

}

}

//顯示復合郵件的主要實現

public String getPart(Part part, int partNum, int msgNum,int x) throws MessagingException,IOException

{

String s=\"\";

String s1=\"\"; //x參數來確定是以html格式顯示還是以plain

String s2=\"\";

String s3=\"\";

String s5=\"\";

String sct = part.getContentType();

if (sct == 1)

{

s=\"part 無效\";

return s;

}

ContentType ct = new ContentType(sct);

if (ct.match(\"text/html\")||ct.match(\"text/plain\"))

{

// display text/plain inline

s1+=(String)part.getContent();

}

else if(partNum!=0)

{

String temp=\"\";

if ((temp = part.getFileName()) != 1)

{

s2= \"Filename: \"+temp;

}

/*

out.println(\" HttpUtils.getRequestURL(req) +

\"?message=\" +

msgNum + \"part=\" +

partNum + \"\\\">Display Attachment\");

*/

}

if(part.isMimeType(\"multipart/alternative\"))

{

String s6=\"\";

String s7=\"\";

Multipart mp = (Multipart)part.getContent();

int count = mp.getCount();

for (int i = 0; i < count; i++)

{

if(mp.getBodyPart(i).isMimeType(\"text/plain\"))

s7=getPart(mp.getBodyPart(i), i, 3,2);

if(mp.getBodyPart(i).isMimeType(\"text/html\"))

s6=getPart(mp.getBodyPart(i), i, 3,1);

}

if(x==1){s5=s6;}

if(x==2){s5=s7;}

return s5;

}

s=s1+s2;

return s;

}

6 創建和發送郵件

Compose.jsp提供了編輯郵件的表單,用戶進入compose.jsp有3個入口:

1) 在框架頁選擇“compose”連接,此時compose.jsp將創建一封新郵件。

2) 在showmessage.jsp中選擇”reply”連接,此時compose.jsp先創建一封回復郵件,再讓用戶編輯這封郵件。

用戶創建郵件的compose.jsp網頁如圖8所示。

圖8 創建郵件頁面圖9 退出頁面

7 退出郵件系統

Logout.jsp負責退出,結束當前Http Session,并且提供了再次登錄的連接,如圖9所示。

調用Store的close方法,將會斷開與接收郵件服務器的連接,以下是logout.jsp的主要代碼:

<%if(mud.getStore()==1)throw new Exception(\"The page you visit expires or you do not login yet. Please login again\");

%>

<%

String username=mud.getURLName().getUsername();

mud.getStore().close();

session.invalidate();

%>

8 關鍵技術及技巧

8.1 靜態網頁設計技巧

1) 精心營造商城氛圍。重視網站整體設計,充分利用色彩、圖形、文字、動畫等多種設計元素,力求給顧客提供溫馨氛圍,具有很強的親和力。在網站整體設計中,比較突出的是網站標志的設計和色彩的運用兩部分。

2) 色彩的運用。色彩是最富視覺沖擊力的設計元素,本系統從自身特點出發,采用紅色系作為網站的色彩基調,深深淺淺的成功地營造出了輕松、親切的環境,讓進入網站的顧客感到神清氣爽,同時也展示了網站清新脫俗的品質。

3) 方便整潔的系統頁面為用戶提供了良好的視覺效果。雖然沒有美麗的外表,但樸實無華的風格給人端莊的感覺。

4) 人性化的設計使得用戶更容易操作。即使以前從未用過電子郵件的用戶幾乎不用學就可以操作。

8.2 CSS樣式

全稱應該是層疊樣式表(Cascacling stylesheets,簡稱CSS),它改變了HTML對頁面布局、字體、顏色、背景和其它文圖效果控制的繁瑣設定,實現更加精確的控制,為網頁編程人員制作、修改。統一網頁的外觀效果的操作,帶來了極大的方便。具備以下的特點和優勢;

只通過修改一個文件就改變頁數不定的網頁的外觀和格式。

在所有瀏覽器和平臺之間的兼容性。

更少的編碼、更少的頁數和更快的下載速度

8.3 程序設計的關鍵技術

郵件服務器按照為用戶提供E-mail發送和接收的服務不同,可以分為發送郵件服務器和接收郵件服務器。發送郵件服務器常用的是SMTP,接收郵件服務器使用接收郵件協議,常用的有POP3協議和IMAP。與POP3協議相比,IMAP為客戶提供了更多的對郵件服務器上郵件的控制權限,如管理郵件和郵件夾等。Java Mail API是Java對電子郵件處理的延伸,它提供和通訊協定無關的 Java解決方案,可以處理各種email格式,包括IMAP、POP、SMTP,以及MI ME,和其他和Internet相關的訊息通訊協定。Javax.mail.Session類定義了一個基本郵件會話,是Java Mail API最高層入口類。所有其他的類都是經由這個Session才得以生效。

該系統采用了WEB的三層結構:WEB客戶通過瀏覽器訪問javamail應用,該應用可以連接客戶請求的某個POP3服務器上的郵件帳號。

參考文獻:

[1] 孫衛琴,李洪成.Tomcat與Java Web開發詳解[M].北京:電子工業出版社,2004.283-322.

[2] 飛思科技產品研發中心.JSP應用開發詳解(第二版)[M].北京:電子工業出版社,2004.

[3] 甘云劍,鄭福基.網頁設計三合一教程:Dreamweaver Fireworks Flash MX 2004中文版[M].北京:清華大學出版社,2005.

[4] 錢龍華,錢培德.基于XML結構的電子郵件的表示及其生成[J].計算機工程,2006, 32(8).

[5] Java Programming.NIIT高質量計算機教材.2002.

[6] Cay S.Horstmann,Gary Cornell.Core Java 2,Volume II,Advanced Features,5E.PH PTR,2003.

[7] Bruce Eckel. Thinking in Java, Third Edition. Prentice Hall PTR,2005.

[8] Chen Yu-Che,Gant,Jon. Transforming local e-government services: the use of application service providers[J]. Government Information Quarterly,2001,18(4):343-355.

[9] Lacity,M.Willcocks,L. An empirical investigation of information technology sourcing practices:lessons from experience[J]. MIS Quarterly,1998,22(3).

[10] Frederic J. Cooper, et al. Implementing Internet Security. New Riders Publishing. 1995.

主站蜘蛛池模板: 午夜日本永久乱码免费播放片| 欧美色伊人| 精品色综合| 精品成人一区二区三区电影| 国产精品深爱在线| AV片亚洲国产男人的天堂| 亚洲视频色图| 国产美女无遮挡免费视频| 久久精品电影| 无码'专区第一页| 亚洲Va中文字幕久久一区| 精品一区二区无码av| 日韩无码黄色网站| 欧美成人怡春院在线激情| 亚洲全网成人资源在线观看| 青青青亚洲精品国产| 99性视频| 欧美成人国产| 国产精品视频999| 欧美三级视频网站| 国产亚洲现在一区二区中文| 久久天天躁狠狠躁夜夜2020一| 久久精品视频亚洲| 成人一区在线| 日韩视频免费| 亚洲无码精彩视频在线观看| 亚洲制服丝袜第一页| www中文字幕在线观看| 亚洲欧美日韩另类在线一| 久久亚洲日本不卡一区二区| 国产一区二区色淫影院| 精品久久综合1区2区3区激情| 亚洲免费毛片| 欧美日韩福利| 国产尤物视频在线| 亚洲精品国产综合99| 国产熟睡乱子伦视频网站| 99国产精品免费观看视频| 国产在线观看一区精品| 亚洲91精品视频| 手机成人午夜在线视频| 亚洲区第一页| 欧美在线导航| 国产网站一区二区三区| 欧美一区二区啪啪| 热这里只有精品国产热门精品| 亚洲水蜜桃久久综合网站 | 欧美成人国产| 色噜噜综合网| 视频二区中文无码| 波多野结衣久久高清免费| 国产欧美日韩综合一区在线播放| 91年精品国产福利线观看久久| 国产美女精品人人做人人爽| 九九九精品成人免费视频7| 久久中文字幕2021精品| 欧美国产在线看| 伊人久久福利中文字幕| 97国产精品视频人人做人人爱| 91精品最新国内在线播放| 日本少妇又色又爽又高潮| 97se综合| 国产美女精品一区二区| 亚洲精品天堂自在久久77| 成年人久久黄色网站| 亚洲成A人V欧美综合| 91色爱欧美精品www| 国产视频资源在线观看| 亚洲国产综合精品一区| 中文字幕资源站| 亚洲精品无码AⅤ片青青在线观看| 亚洲中文字幕23页在线| 奇米影视狠狠精品7777| 成人综合在线观看| 99久久精品免费看国产电影| 美女一区二区在线观看| 欧美一级高清免费a| 日韩精品亚洲人旧成在线| 国产91成人| 一区二区日韩国产精久久| 久久综合色88| 亚洲成a人片|