資源描述:
《郵件系統(tǒng)圖片內(nèi)嵌》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、郵件系統(tǒng)優(yōu)化文檔整理學(xué)習(xí)目的:提高自身能力,增強(qiáng)解決問(wèn)題的能力,養(yǎng)成獨(dú)立思考的習(xí)慣學(xué)習(xí)內(nèi)容:學(xué)習(xí)郵件系統(tǒng)開(kāi)發(fā)的基礎(chǔ)知識(shí)并對(duì)現(xiàn)有的一個(gè)郵件系統(tǒng)優(yōu)化,實(shí)現(xiàn)郵件發(fā)送圖片時(shí)將圖片資源內(nèi)嵌到郵件內(nèi)容中去學(xué)習(xí)過(guò)程:一、熟悉郵件系統(tǒng)的基礎(chǔ)知識(shí),了解郵件傳輸協(xié)議(SMTP協(xié)議、POP3協(xié)議等)(1)SMTP(SimpleMailTransferProtocol,簡(jiǎn)單郵件傳輸協(xié)議)定義了郵件客戶端軟件與SMTP服務(wù)器之間以及兩臺(tái)SMTP服務(wù)器之間的通信規(guī)則。SMTP協(xié)議的通信雙方采用一問(wèn)一答的命令/響應(yīng)形式進(jìn)行對(duì)話。(2)POP
2、3協(xié)議定義了郵件客戶端程序與POP3服務(wù)器進(jìn)行通信的具體規(guī)則和細(xì)節(jié)。用戶要從郵件服務(wù)器提供商提供的電子郵箱來(lái)獲取自己的電子郵件,需要通過(guò)郵件服務(wù)提供商的POP3郵件服務(wù)器來(lái)幫助完成。二、了解電子郵件的工作原理(假設(shè)lyk@sina.com向lhl@163.com發(fā)送郵件)(1)lyk@sina.com的郵件客戶端程序與對(duì)應(yīng)的SMTP服務(wù)器建立網(wǎng)絡(luò)連接,并以其用戶名和密碼登錄后使用SMTP協(xié)議把郵件發(fā)送到sina的SMTP服務(wù)器(2)Sina的SMTP服務(wù)器收到lyk@sina.com提交的電子郵件后,首先根據(jù)收
3、件人的得知后綴判斷接收者的郵件地址是否屬于該SMTP服務(wù)器的管轄范圍,如果是就直接把郵件存儲(chǔ)到收件人的郵箱中,否則sina的SMTP服務(wù)器想DNS服務(wù)器查詢(xún)收件人的郵件地址后綴所表示的域名的MX記錄,與163的SMTP服務(wù)器建立連接并采用SMTP協(xié)議吧郵件發(fā)送給163的SMTP服務(wù)器。(1)163的SMTP服務(wù)器收到sina的SMTP服務(wù)器發(fā)來(lái)的電子郵件后,也將根據(jù)收件人的地址判斷該郵件是否屬于該SMTP服務(wù)器的管轄范圍,如果是就直接把郵件存儲(chǔ)到收件人的郵箱中,否則163的SMTP服務(wù)器可能繼續(xù)轉(zhuǎn)發(fā)這封電子郵件
4、,也可能丟棄這封電子郵件。(2)用戶lhl@163.com通過(guò)郵件客戶端與163的POP3/IMAP服務(wù)器建立網(wǎng)絡(luò)連接,登錄后就可以通過(guò)POP3或IMAP協(xié)議瞎看郵箱中是否有新郵件。如果有,則用POP3或IMAP協(xié)議讀取郵箱中的郵件。一、創(chuàng)建HTML格式的郵件在發(fā)送郵件的過(guò)程中可能會(huì)發(fā)送圖片,但是由于java自帶的編輯器是純文本框,無(wú)法插入圖片,所以需要?jiǎng)?chuàng)建HTML格式的郵件。郵件正文用HTML文本表示時(shí),可以使用HTML文件的特性來(lái)豐富郵件正文,加入一些圖片和聲音等。二、包含內(nèi)嵌圖片的復(fù)雜郵件如上所說(shuō),創(chuàng)建H
5、TML格式的郵件能夠添加圖片等,在html頁(yè)面中直接嵌入圖片數(shù)據(jù)通常是在html頁(yè)面中應(yīng)用圖片的鏈接,如:但是,這樣的前提是我們需要將圖片先上傳到指定的網(wǎng)站,然后獲取外鏈。一方面略麻煩,最主要的是存儲(chǔ)圖片的網(wǎng)站是否持續(xù)的支持外鏈引用。所以,將圖片直接插入到html頁(yè)面中。如其中base64逗號(hào)之后的就是將圖片經(jīng)過(guò)base64編碼后的數(shù)據(jù)。三、如何實(shí)現(xiàn)圖片的嵌入實(shí)
6、現(xiàn)郵件正文中圖片的嵌入,其實(shí)就是從郵件的html文件中將圖片的絕對(duì)URL解析出來(lái)再用base64編碼,將所得編碼以上訴的形式替換原來(lái)的img標(biāo)簽的src屬性值操作過(guò)程1.由前面的學(xué)習(xí)可知實(shí)現(xiàn)郵件正文的圖片嵌入,需要以形式插入圖片。其中要將圖片進(jìn)行base64編碼,base64方法如下:importsun.misc.BASE64Decoder;import
7、sun.misc.BASE64Encoder;publicstaticStringGetImageStr(){//將圖片文件轉(zhuǎn)化為字節(jié)數(shù)組字符串,并對(duì)其進(jìn)行Base64編碼處理StringimgFile="111.jpg";//待處理的圖片//Filef=newFile(imgFile);f.length()FileInputStreamin=null;byte[]data=null;FileChannelfc=null;//讀取圖片字節(jié)數(shù)組try{in=newFileInputStream(imgFile);
8、fc=in.getChannel();data=newbyte[(int)fc.size()];//[in.available()];in.read(data);in.close();}catch(IOExceptione){e.printStackTrace();}//對(duì)字節(jié)數(shù)組Base64編碼BASE64Encoderencoder=newBASE64Encoder();retur