freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于ajax技術(shù)的郵件系統(tǒng)設(shè)計論文-資料下載頁

2025-06-28 00:24本頁面
  

【正文】 51 JavaMail 實現(xiàn)郵件發(fā)送流程認(rèn)證通過后,用戶可以選擇發(fā)送郵件,完成 Email 的發(fā)送主要需要用到JavaMail 中的郵件發(fā)送功能,即利用了 JavaMail 的 SMTP 傳輸。發(fā)送電子郵件消息涉及到獲取會話、創(chuàng)建和填充消息并發(fā)送消息這些操作。在獲取 Session 時,通過為要傳遞的 Properties 對象設(shè)置 屬性來指定所用的 SMTP 服務(wù)器。由于垃圾郵件日益增多讓人不勝厭煩,通常用于發(fā)送電子郵件的 SMTP 服務(wù)器需要權(quán)限認(rèn)證,驗證用戶是否在本服務(wù)器申請了賬戶,因為只允許合法的用戶通過它發(fā)送信件,所以在發(fā)郵件時必須考慮 SMTP 認(rèn)證,這是基于安全性的考慮。實現(xiàn) AJAX 異步發(fā)送郵件的功能就是在郵件發(fā)送階段完成的。就是將郵件的 22 發(fā)送作為服務(wù)器處理,用戶通過郵件信息的輸入界面輸入要發(fā)送的郵件信息后,向服務(wù)器發(fā)送傳輸郵件的請求,發(fā)送的請求通過 AJAX 做異步處理,從而實現(xiàn)郵件發(fā)送的異步化。在編程過程中,將所需要的全部四個對象(屬性對象、會話對象、傳輸對象、消息對象) ,以及 AJAX 的異步實現(xiàn)結(jié)合起來,其主要過程如下:(1) 客戶端郵件輸入頁面:... ...! 引入dojo,設(shè)置bind 函數(shù) script type=text/javascriptfunction sendPressed(transport){({url: 39。39。,method:39。POST39。,handler:function(type, data, evt){if (type == 39。error39。){alert(讀取服務(wù)器數(shù)據(jù)出錯 )。}else{(show).innerHTML = data。}}})。}/script... ...%//頁面單擊提交時if((submit) != null){try{String from = (from).toString()。String to = Bytes((to))。String cc = Bytes((cc))。String bcc = Bytes((bcc))。String subject = Bytes((subject))。String body = Bytes((text))。String file1 = Bytes((file1))。String file2 = Bytes((file2))。Properties props = new Properties()。(,(smtp).toString())。(,true)。 23 s = (props)。(true)。MimeMessage message = new MimeMessage(s)。//給消息對象設(shè)置發(fā)件人、收件人、主題、發(fā)信時間(new InterAddress(from))。(,new InterAddress(to))。if(cc != null amp。amp。 () 0 amp。amp。 (!()))(,new InterAddress((cc)))。if(bcc != null amp。amp。 () 0 amp。amp。 (!()))(,new InterAddress((bcc)))。(subject)。(new Date())。//新建一個MimeMultipart對象用來存放多個BodyPart 對象Multipart mp = new MimeMultipart()。//設(shè)置信件文本內(nèi)容//新建一個存放信件內(nèi)容的BodyPart對象BodyPart mbp = new MimeBodyPart()。//給BodyPart對象設(shè)置內(nèi)容和格式/編碼方式(body,text/html。charset=gbk)。//將含有信件內(nèi)容的BodyPart加入到MimeMultipart對象中(mbp)。//設(shè)置信件的附件1(直接將所設(shè)文本內(nèi)容加到自定義文件中作為附件發(fā)送)if(file1 != null amp。amp。 () 0 amp。amp。 (!())){mbp = new MimeBodyPart()。//新建一個存放附件的BodyPartFileDataSource fds = new FileDataSource(file1)。DataHandler dh = new DataHandler(fds)。//新建一個DataHandler對象,并設(shè)置其內(nèi)容和格式/編碼方式//加上這句將作為附件發(fā)送,否則將作為信件的文本內(nèi)容(file1)。(dh)。//給BodyPart對象設(shè)置內(nèi)容為dh//將含有附件的BodyPart加入到MimeMultipart對象中(mbp)。}//設(shè)置信件的附件2(用本地上的文件作為附件)if(file2 != null amp。amp。 () 0 amp。amp。 (!())){mbp = new MimeBodyPart()。FileDataSource fds = new FileDataSource(file2)。DataHandler dh = new DataHandler(fds)。(file2)。//可以和原文件名不一致(dh)。(mbp)。 24 }(mp)。//把mm作為消息對象的內(nèi)容()。Transport transport = (smtp)。(message,message)。(transport,transport)。%! 調(diào)用異步發(fā)送函數(shù) script language=JavaScript type=text/javascriptsendPressed()。/script%}catch(Exception exc){()。(發(fā)送失敗)。}}%郵件輸入頁面效果如下圖 52 所示:圖 52 新郵件的輸入頁面(2) 服務(wù)器端發(fā)送郵件處理:... ...%try{Message message = (Message)(message)。Transport transport = (Transport)(transport)。 25 if(message == null amp。amp。 transport == null)(發(fā)送失敗)。else{ ((smtp).toString(),(user).toString(),(pwd).toString())。(message, ())。()。(發(fā)送成功)。}}catch(Exception exc){()。(發(fā)送失敗)。}%郵件發(fā)送成功后,客戶端將會收到來自服務(wù)器端的回調(diào)信息,提示郵件已成功發(fā)送。 利用 POP3 協(xié)議接收電子郵件完成 Email 的接收主要需要用到 JavaMail 中的郵件接收功能,即利用了JavaMail 的 POP3 存取。在郵件的接受過程中,完成了對郵件相關(guān)信息的數(shù)據(jù)庫存儲。接收和處理 Email 的流程如圖 53 所示:圖 53 接收和 Email 流程JavaMail API 中定義了一個 類,它用于執(zhí)行郵件接收任務(wù),這個類的實例對象封裝了某種郵件接收協(xié)議的底層實施細(xì)節(jié),應(yīng)用程序調(diào)用這個類中的方法就可以獲得用戶郵箱中的各個郵件夾的信息。JavaMail 使用 Folder 對象表示郵件夾,通過 Folder 對象的方法應(yīng)用程序進(jìn)而又可以獲得該郵件夾中的所有郵件信息,而每封郵件信息 JavaMail 又分別使用一個 Message 對象進(jìn)行封裝。 26 JavaMail 中接收郵件的主要過程是:(1) 從 Session 對象中獲得實現(xiàn)了某種郵件接收協(xié)議的 Store 對象。(2) 以某個郵箱帳戶的身份連接上 POP3 或 IMAP4 服務(wù)器。(3) 調(diào)用 Store 的 getFolder 方法,獲取代表該賬戶的郵箱中的某個郵件夾的Fodler 的對象。(4) 調(diào)用 Folder 對象中的 getMessages 或 getMessage 方法,獲取郵件夾中的所有郵件或某一一封郵件,每封郵件以一個 Message 對象返回。(5) 通過 Message 對象所提供的方法,解析顯示一封郵件,包括郵件的發(fā)送者地址、郵件主題、發(fā)送時間、郵件正文中的文本信息,郵件中的附件等信息。數(shù)據(jù)庫中存取郵件信息是通過 Hibernate 中間件技術(shù)實現(xiàn)對數(shù)據(jù)的存儲操作,主要實現(xiàn)過程如下:... ...Transaction tx = ().beginTransaction()。MailFolderTable mailFolder = new MailFolderTable()。(mailFolder + br)。()。(())。()。().save(mailFolder)。()。().close()。int folderIkey = ()。(mailFolderTable,mailFolder)。(folderIkey,folderIkey)。//save message in MailTable(mailTable + br)。for(int i = 0。i 。i++){tx = ().beginTransaction()。MailTableMapping mailTable = new MailTableMapping()。(i)。//MailTable的ID與messages的ID 是一致的(message[i].getSentDate())。(1)。//服務(wù)器新接受的郵件都是新的if((new Mail((MimeMessage)message[i])).isContainAttach((Part)message[i])){(1)。}else(0)。(folderIkey)。 27 ().save(mailTable)。()。().close()。mailTable = null。}... ...郵件接收功能的系統(tǒng)運行效果如圖 54 所示:圖 54 收件箱顯示頁面顯示郵件詳細(xì)信息的系統(tǒng)運行效果如圖 55 所示:圖 55 顯示郵件詳細(xì)內(nèi)容頁面 28 郵件標(biāo)簽管理設(shè)計郵件標(biāo)簽?zāi)K為用戶提供自定義的標(biāo)簽使用,用戶可以在郵件的收件箱中使用自定義的標(biāo)簽,為選擇的郵件添加用戶自定義標(biāo)簽或移除郵件的標(biāo)簽。 添加標(biāo)簽此功能為用戶提供添加自定義標(biāo)簽的功能,用戶可有郵件標(biāo)簽的創(chuàng)建頁面輸入新的郵件的相關(guān)信息,主要是標(biāo)簽的名稱,當(dāng)用戶向服務(wù)器提交數(shù)據(jù)時,服務(wù)器通過 Hibernate 的數(shù)據(jù)庫連接方便快捷的實現(xiàn)新標(biāo)簽信息的持久化添加。關(guān)鍵代碼如下:String flagName = Bytes((flagName))。Session s = ()。//開啟會話Transaction tx = ()。//開啟事務(wù)MailTagTable mtt = new MailTagTable()。(flagName)。(mtt)。()。//提交事務(wù)()。//結(jié)束會話 修改標(biāo)簽主要負(fù)責(zé)將指定的標(biāo)簽信息進(jìn)行修改。主要實現(xiàn)代碼如下:String flagNameOld = (String)(flagNameOld)。(flagNameOld)。String flagNameNew = Bytes((flagNameNew))。//更新UserFlag表中的數(shù)據(jù)Session s = ()。Transaction tx = ()。Query q0 = (from MailTagTable where name = :FLAG_NAME)。(FLAG_NAME,flagNameOld)。Iterator it = ()。MailTagTable mtt = (MailTagTable)()。(flagNameNew)。(mtt)。 刪除標(biāo)簽組要實現(xiàn)郵件標(biāo)簽的刪除工作。刪除標(biāo)簽會使標(biāo)簽從數(shù)據(jù)庫中徹底刪除,此時,需要級聯(lián)更新郵件中與之相關(guān)的郵件信息。關(guān)鍵代碼如下:String flagName = Bytes((flagName))。Session s = ()。 29 Transaction tx = ()。MailTagTable mtt = (MailTagTable)s.createQuery(from MailTagTable where name = :flagName).setString(flagName,flagName).setMaxResults(1).uniqueResult()。(mtt)。()。()。 使用標(biāo)簽實現(xiàn)郵件的標(biāo)簽管理功能,用戶可在收件箱界面對選擇的郵件使用標(biāo)簽,即貼標(biāo)簽?;?qū)x擇的郵件刪除標(biāo)簽。實現(xiàn)這些功能主要有兩個步驟的處理任務(wù):一是,從數(shù)據(jù)庫中加載郵件標(biāo)簽,并作為選擇內(nèi)容供用戶選擇,主要的實現(xiàn)代碼如下:%sessionHibernate = ()。q = (from MailTagTable)。List list0 = ()。%select name=selectOption%for(int i = 0。i ()。i++){MailTagTable mtt = (MailTagTable)(i)。%option value=%=() %%=() %/opt
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1