版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、北京傳智播客教育 www.itcast.cn,郵件原理與JavaMail開發(fā),參考教材:Java郵件程序開發(fā)詳解,方立勛,北京傳智播客教育 www.itcast.cn,Java郵件開發(fā)介紹,為什么要學習javamail開發(fā)現(xiàn)在很多WEB應用在開發(fā)時都需要集成郵件發(fā)送功能,例如: 給新注冊的用戶自動發(fā)送一封包含其注冊信息的歡迎E-Mail。給過生日的注冊會員自動發(fā)送一封表示祝賀的E-Mail 。將網(wǎng)站的最新活動信息通過E-Ma
2、il發(fā)送給所有的注冊會員。等等 …...這些功能的實現(xiàn)都需要軟件開發(fā)人員在開發(fā)WEB應用中編寫相應的郵件處理程序。課程目標,北京傳智播客教育 www.itcast.cn,課程目標,學習javamail主要包括兩部分:生成郵件和發(fā)送接收郵件。效果演示:可以編寫程序代碼生成一封帶內(nèi)嵌圖片的郵件可以編寫程序生成一封即帶附件又帶圖片的復雜郵件??梢跃帉慾ava郵件發(fā)送程序發(fā)送郵件實現(xiàn)類似sina、sohu的web郵件發(fā)送程序郵
3、件開發(fā)過程中的一些常見問題中文名的郵件附件的亂碼問題Tomcat中JavaMail支持與沖突問題如何實現(xiàn)郵件群發(fā),北京傳智播客教育 www.itcast.cn,郵件開發(fā)涉到的一些基本概念,郵件服務器和電子郵箱 郵件傳輸協(xié)議電子郵件的發(fā)送和接收過程,北京傳智播客教育 www.itcast.cn,郵件服務器和電子郵箱,郵件服務器:要在Internet上提供電子郵件功能,必須有專門的電子郵件服務器。例如現(xiàn)在Internet很多提供
4、郵件服務的廠商:sina、sohu、163等等他們都有自己的郵件服務器。這些服務器類似于現(xiàn)實生活中的郵局,它主要負責接收用戶投遞過來的郵件,并把郵件投遞到郵件接收者的電子郵箱中。電子郵箱:電子郵箱(E-mail地址)的獲得需要在郵件服務器上進行申請 ,確切地說,電子郵箱其實就是用戶在郵件服務器上申請的一個帳戶。用戶在郵件服務器上申請了一個帳號后,郵件服務器就會為這個帳號分配一定的空間,用戶從而可以使用這個帳號以及空間,發(fā)送電子郵件
5、和保存別人發(fā)送過來的電子郵件。,北京傳智播客教育 www.itcast.cn,郵件傳輸協(xié)議和郵件服務器類型,SMTP協(xié)議(畫圖演示)用戶連上郵件服務器后,要想給它發(fā)送一封電子郵件,需要遵循一定的通迅規(guī)則,SMTP協(xié)議就是用于定義這種通訊規(guī)則的。因而,通常我們也把處理用戶smtp請求(郵件發(fā)送請求)的郵件服務器稱之為SMTP服務器。(25)POP3協(xié)議同樣,用戶若想從郵件服務器管理的電子郵箱中接收一封電子郵件的話,他連上郵件服務器
6、后,也需要遵循一定的通迅格式,POP3協(xié)議用于定義這種通訊格式。因而,通常我們也把處理用戶pop3請求(郵件接收請求)的郵件服務器稱之為POP3服務器。(110),北京傳智播客教育 www.itcast.cn,電子郵件的傳輸過程,下圖用于演示lisi@sina.com與wangwu@sohu.com帳戶相互發(fā)送郵件的過程。,北京傳智播客教育 www.itcast.cn,手工演示電子郵件的發(fā)送,準備實驗環(huán)境提前在sohu 和sina上
7、注冊一個免費帳號獲取smtp和pop3服務器的名稱Sina或 sohu會在其幫助中心里提示管理當前注冊帳號的郵件服務器的主機名。編寫base64編碼程序?qū)τ脩裘兔艽a進行編碼。手工使用SMTP協(xié)議發(fā)送電子郵件編寫Socket程序發(fā)送電子郵件如何配置outlook收發(fā)郵件郵件服務器的配置,北京傳智播客教育 www.itcast.cn,,SMTP協(xié)議 ehlo 主機名auth login //經(jīng)過base64編碼后的用戶名
8、和密碼mail from:rcpt to:Data .號代表郵件內(nèi)容的結束quit,SMTP協(xié)議,北京傳智播客教育 www.itcast.cn,,POP3協(xié)議userusername passpassword stat 返回郵箱的統(tǒng)計信息list[msg#]返回某一封郵件的統(tǒng)計信息retrmsg# 最重要的一個命令quit 使用POP3協(xié)議手工接收郵件,POP3協(xié)議,北京傳智播客教育 www.itcast.
9、cn,,RFC822文檔規(guī)定了如何編寫一封簡單郵件郵件頭和郵件體,兩者使用空行分隔郵件頭from字段to字段subject字段cc、bcc字段郵件體郵件內(nèi)容 利用RFC822文檔漏洞發(fā)送假冒郵件,創(chuàng)建郵件——RFC822文檔,北京傳智播客教育 www.itcast.cn,,MIME協(xié)議是對RFC822文檔的升級和補充,它描述了如何生成一封復雜郵件。通常我們把MIME協(xié)議描述的郵件稱之為MIME郵件,MIME協(xié)議描述的數(shù)
10、據(jù)稱之為MIME消息。對于一封復雜郵件,如果包含了多個不同的數(shù)據(jù),MIME協(xié)議規(guī)定了要使用分隔線對多段數(shù)據(jù)進行分隔,并使用Content-Type頭字段對數(shù)據(jù)的類型、以及多個數(shù)據(jù)之間的關系進行描述。(查看outlook郵件源文件),創(chuàng)建郵件—— MIME協(xié)議,北京傳智播客教育 www.itcast.cn,,Content-type:字段數(shù)據(jù)類型 以“主類型/子類型”的形式出現(xiàn),主類型有text、image、audio、video
11、、application、message等,分別表示文本、圖片、音頻、視頻、應用程序、組合結構、消息等。每個主類型下面都有多個子類型,例如text主類型包含plain、html、xml、css等子類型。 數(shù)據(jù)的關系multipart/mixed、multipart/related、multipart/alternative,MIME協(xié)議常用頭字段,北京傳智播客教育 www.itcast.cn,,Content-Disposition
12、頭字段Content-Disposition頭字段用于指定郵件閱讀程序處理數(shù)據(jù)內(nèi)容的方式,有inline和attachment兩種標準方式,inline表示直接處理,而attachment表示當作附件處理。如果將Content-Disposition設置為attachment,在其后還可以指定filename屬性,如下所示:Content-Disposition: attachment; filename=“1.bmp”上面的M
13、IME頭字段表示MIME消息體的內(nèi)容為郵件附件,附件名“1.bmp”Content-ID頭字段Content-ID頭字段用于為“multipart/related”組合消息中的內(nèi)嵌資源指定一個唯一標識號,在HTML格式的正文中可以使用這個唯一標識號來引用該內(nèi)嵌資源。例如,假設將一個表示內(nèi)嵌圖片的MIME消息的Content-ID頭字段設置為如下形式:Content-ID: it315logo_gif那么,在HTML正文中就需要
14、使用如下HTML語句來引用該圖片資源: 注意,在引用Content-ID頭字段標識的內(nèi)嵌資源時,要在資源的唯一標識號前面加上“cid:”,以說明要采用唯一標識號對資源進行引用。,MIME協(xié)議常用頭字段,北京傳智播客教育 www.itcast.cn,,查看API類圖創(chuàng)建簡單郵件創(chuàng)建包含內(nèi)嵌圖片的郵件創(chuàng)建包含附件的郵件包含內(nèi)嵌圖片和附件的復雜郵件中文名的郵件附件的亂碼問題,使用JavaMail API創(chuàng)建郵件,北京傳智播客教
15、育 www.itcast.cn,郵件組織結構相關的API,MimeMessage類表示整封郵件。MimeBodyPart類表示郵件的一個MIME消息。MimeMultipart類表示一個由多個MIME消息組合成的組合MIME消息。,北京傳智播客教育 www.itcast.cn,,使用JavaMail API收發(fā)郵件,JavaMail API按其功能劃分通??煞譃槿缦氯箢悾簞?chuàng)建和解析郵件內(nèi)容的API :Message類是創(chuàng)建和解析
16、郵件的核心API,它的實例對象代表一封電子郵件。 發(fā)送郵件的API:Transport類是發(fā)送郵件的核心API類,它的實例對象代表實現(xiàn)了某個郵件發(fā)送協(xié)議的郵件發(fā)送對象,例如SMTP協(xié)議。 接收郵件的API:Store類是接收郵件的核心API類,它的實例對象代表實現(xiàn)了某個郵件接收協(xié)議的郵件接收對象,例如POP3協(xié)議。 Session類 Session類用于定義整個應用程序所需的環(huán)境信息,以及收集客戶端與郵件服務器建立網(wǎng)絡連接的會話
17、信息,如郵件服務器的主機名、端口號、采用的郵件發(fā)送和接收協(xié)議等。Session對象根據(jù)這些信息構建用于郵件收發(fā)的Transport和Store對象,以及為客戶端創(chuàng)建Message對象時提供信息支持。,北京傳智播客教育 www.itcast.cn,郵件發(fā)送程序,使用JavaMail發(fā)送一封簡單的郵件:創(chuàng)建包含郵件服務器的網(wǎng)絡連接信息的Session對象。 創(chuàng)建代表郵件內(nèi)容的Message對象。 創(chuàng)建Transport對象、連接服務器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何用javamail發(fā)送郵件
- javamail的使用之郵件發(fā)送
- 基于javamail的電子郵件收發(fā)系統(tǒng)
- 基于javamail電子郵件系統(tǒng)設計
- 基于javamail的郵件收發(fā)系統(tǒng)答辯稿
- 畢業(yè)論文范文——基于javamail的郵件收發(fā)系統(tǒng)
- 郵件收發(fā)程序的設計與開發(fā)——畢業(yè)論文
- 基于bcb開發(fā)具有身份認證功能的郵件發(fā)送程序
- javamail應用一(基礎)
- 基于javamail的郵件收發(fā)系統(tǒng)(系統(tǒng)+論文+開題報告+任務書+外文翻譯+文獻綜述+答辯ppt)
- 如何設置iphoneipod touchipad郵件應用程序?
- 壓縮打包文件與發(fā)送郵件圖片信息詳解
- 郵件地址提取程序課程設計報告
- arduino燒錄引導程序詳解
- 郵件服務器研究與開發(fā).pdf
- JavaMail規(guī)范的研究和實現(xiàn).pdf
- 松下plc如何下載程序詳解
- vc++收發(fā)電子郵件的開發(fā)
- 安全電子郵件的研究與開發(fā).pdf
- 軟件需求開發(fā)程序
評論
0/150
提交評論