JavaMail技術(shù)_第1頁
JavaMail技術(shù)_第2頁
JavaMail技術(shù)_第3頁
JavaMail技術(shù)_第4頁
JavaMail技術(shù)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、JavaMail技術(shù)1. JavaMail介紹現(xiàn)如今,使用email發(fā)送郵件非常普遍和常見,平時公司內(nèi)部交流,網(wǎng)站上信息通知,注冊時激活驗證等地方都在使用郵件,Java也有關(guān)于發(fā)送和接收郵件技術(shù)封裝。Java中提供的技術(shù)即就是要給大家介紹的JavaMail技術(shù)。2. 郵件協(xié)議2.1. 郵件服務(wù)器簡介郵件服務(wù)器,按照提供的服務(wù)類型,可以分為發(fā)送郵件的服務(wù)器和接收郵件的服務(wù)器。發(fā)送郵件的服務(wù)器使用發(fā)送協(xié)議,現(xiàn)在常用的是SMTP協(xié)議。所以,通常發(fā)郵件的服務(wù)器也稱為SMTP服務(wù)器。接收郵件的服務(wù)器使用接收協(xié)議,現(xiàn)在常用的是POP3協(xié)議或IMAP協(xié)議,所以通常也被稱為POP3或IMAP服務(wù)器。目前經(jīng)常見

2、到的服務(wù)器為SMTP和POP3服務(wù)器。例如:在注冊了126的郵箱之后,它的發(fā)郵件服務(wù)器為:25,而收郵件服務(wù)器則為:110.(冒號后面的為端口號)。當(dāng)然,發(fā)郵件服務(wù)器和收郵件服務(wù)器也可能是同一臺主機(jī),但端口號一定不相同。默認(rèn)發(fā)郵件服務(wù)器的端口為25,收郵件的端口為110。2.2. 郵件收/發(fā)協(xié)議SMTP協(xié)議發(fā)郵件協(xié)議全稱為Simple Mail Transfer Protocol(簡單郵件傳輸協(xié)議),它定義了郵件客戶端軟件與SMTP服務(wù)器之間、以及兩臺SMTP服務(wù)器之間的通訊規(guī)則。端口一般為25.POP3協(xié)議收郵件協(xié)議全稱為Post Office Protocol(郵局協(xié)議),它定義了郵件客戶

3、端軟件與POP3服務(wù)器的通訊規(guī)則。端口一般為110.IMAP協(xié)議對POP3的擴(kuò)展全稱為Internet Message Access Protocal(Internet消息訪問協(xié)議),它是對POP3協(xié)議的一種擴(kuò)展,定義了郵件客戶端軟件與IMAP服務(wù)器的通訊規(guī)則。3. Apache的JavaMail使用郵件客戶端的主要任務(wù)是向郵件服務(wù)器發(fā)送郵件,以及接收來自郵件服務(wù)器的郵件。Sun公司制定了一套API,它封裝了郵件通信的各種協(xié)議。為Java開發(fā)者提供了收發(fā)電子郵件的公共接口。但是由于Sun公司提供的那些接口比較麻煩,Apache對sun公司的技術(shù)進(jìn)行了封裝,使用Apache的mail技術(shù),可以簡

4、單方便的發(fā)送郵件。3.1. 下載javamail的jar包下載地址:/proper/commons-email/download_email.cgi解壓jar包,在項目中導(dǎo)入jar包。將jar包添加到classpath中即可使用。3.2. Apache的mail類介紹3.2.1. Email類介紹Email:類是Apache的郵件jar包中的核心類,它本身是一個抽象類,需要使用其子類SimpleEmail或MultiPartEmail類創(chuàng)建對象。Email類它是基類,可以通過Email設(shè)置發(fā)送者郵件和名稱,同時可以設(shè)置接收者的郵件、名稱、主題、發(fā)

5、送時間??梢酝ㄟ^其子類設(shè)置需要發(fā)送的郵件主題內(nèi)容。3.2.2. SimpleEmail介紹SimpleEmail類是用來發(fā)送簡單的互聯(lián)網(wǎng)郵件的,但是不攜帶任何的附件。3.2.3. MultiPartEmail介紹MultiPartEmail類是用來發(fā)送可以攜帶附件的郵件內(nèi)容。其子類HtmlEmail可以發(fā)送包含html內(nèi)容的郵件。3.3. 發(fā)送簡單的文本數(shù)據(jù)內(nèi)容3.3.1. 發(fā)送簡單郵件代碼實(shí)現(xiàn)/* * 演示使用Apache的mail技術(shù)發(fā)送郵件 */public class MailDemo public static void main(String args) throws EmailE

6、xception / 創(chuàng)建Mail對象Email mail = new SimpleEmail();/ 設(shè)置發(fā)送郵件的主機(jī)服務(wù)器mail.setHostName("");/ 設(shè)置發(fā)送郵件的端口號mail.setSmtpPort(25);/ 設(shè)置發(fā)送者的郵箱地址和密碼mail.setAuthentication("qb_sh_test", "2015qazwsx");/ 設(shè)置安全連接mail.setSSLOnConnect(true);/設(shè)置發(fā)送者的郵件mail.setFrom("qb_sh_test");/ 設(shè)置主

7、題mail.setSubject("test");/ 設(shè)置郵件內(nèi)容mail.setMsg("ceshi數(shù)據(jù)");/ 設(shè)置接收者郵件mail.addTo("qubo_323");/ 發(fā)送郵件mail.send();3.3.2. 郵箱開啟POP3第三方客戶端(網(wǎng)易)操作上面的程序在運(yùn)行的時候會報下面的異常:Exception in thread "main" mons.mail.EmailException: Sending the email to the following server failed : :465

8、at mons.mail.Email.sendMimeMessage(Email.java:1421)at mons.mail.Email.send(Email.java:1448)at cn.qb.mail.MailDemo.main(MailDemo.java:41)Caused by: javax.mail.AuthenticationFailedExceptionat javax.mail.Service.connect(Service.java:319)at javax.mail.Service.connect(Service.java:169)at javax.mail.Servi

9、ce.connect(Service.java:118)異常的發(fā)生原因:由于發(fā)件的郵箱使用的163郵箱,而郵箱設(shè)置中沒有開啟POP3/STMP/IMAP的第三方郵件客戶端操作。需要先使用網(wǎng)頁登錄郵箱,然后在設(shè)置中開啟第三方客戶端操作服務(wù)。在勾選POP3/STMP服務(wù)或者是IMAP/SMTP服務(wù)的時候會彈出下面窗口選擇確定,設(shè)置授權(quán)碼選擇開啟的時候會彈出需要通過手機(jī)驗證碼設(shè)置授權(quán)碼輸入驗證碼之后,點(diǎn)擊確定:設(shè)置對應(yīng)的授權(quán)碼即可。在設(shè)置發(fā)件箱的賬號和密碼的時候,密碼需要使用授權(quán)碼作為密碼,否則無法發(fā)送。3.3.3. 郵箱開啟POP3(新浪)3.4. 發(fā)送帶有HTML和圖片的郵件/* * 發(fā)送包含H

10、TML片段的郵件 */public class MailDemo2 public static void main(String args) throws Exception / 可以發(fā)送圖片和html片段的Email對象HtmlEmail mail = new HtmlEmail();/ 設(shè)置發(fā)送郵件的主機(jī)服務(wù)器mail.setHostName("");/ 設(shè)置發(fā)送郵件的端口號mail.setSmtpPort(25);/ 設(shè)置發(fā)送者的郵箱地址和密碼mail.setAuthentication("qb_sh_test", "2015qazwsx

11、");/ 設(shè)置安全連接mail.setSSLOnConnect(true);/ 設(shè)置發(fā)送者的郵件mail.setFrom("qb_sh_test");/ 設(shè)置主題mail.setSubject("test html & Picture");/ 設(shè)置圖片的網(wǎng)絡(luò)路徑URL url = new URL("String cid = mail.embed(url, "京東手機(jī)圖片");/ 處理亂碼問題 mail.setCharset("utf-8");/ 將圖片路徑添加到郵件內(nèi)容中mail.set

12、HtmlMsg("<html>京東圖片<img src="cid:"+cid+""></html>");/ 設(shè)置郵件內(nèi)容mail.setTextMsg("你的郵件不支持html格式的郵件");/ 設(shè)置接收者郵件mail.addTo("qubo_323");/ 發(fā)送郵件mail.send();3.5. 發(fā)送帶有附件的郵件/* * 發(fā)送附件 */public class MailDemo3 public static void main(String args)

13、throws Exception EmailAttachment attachment = new EmailAttachment();/ 附件內(nèi)容 path是磁盤本地文件路徑和名稱attachment.setPath("d:/1.jpg");/ 將網(wǎng)絡(luò)中的文件作為附件/attachment.setURL(new URL("/ 表示當(dāng)前設(shè)置的是附件attachment.setDisposition(EmailAttachment.ATTACHMENT);attachment.setDescription("附件描述");attachment.setName("附件名稱.jpg");/ 創(chuàng)建可以發(fā)送附件的Email對象MultiPartEmail email = new MultiPartEmail();email.setHostName("");email.setSmtpPort(25);/ 設(shè)置發(fā)送者的郵箱地址和密碼email.setAuthentication("qb_sh_test", "2015qazwsx");/ 設(shè)置安全連接email.setSSLOnConnect(tru

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論