




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆河北省唐山市高三下學(xué)期第一次模擬考試政治試題(原卷版+解析版)
- 2025年空調(diào)箱總成合作協(xié)議書
- 5.5顯微鏡和望遠(yuǎn)鏡 說課稿 2025年初中人教版物理八年級上冊
- 晚上打瞌睡檢討書
- 關(guān)于志愿者的活動方案
- 證監(jiān)局回復(fù)函立案
- 《商業(yè)插畫創(chuàng)意與表現(xiàn)》課件-【5】商業(yè)插畫的材料與表現(xiàn)技法
- 一體化污水處理設(shè)備采購安裝及運(yùn)維 投標(biāo)方案(技術(shù)方案)
- 三農(nóng)村基層教育資源配置與優(yōu)化方案
- 教育行業(yè)教師培訓(xùn)與成長計劃
- FZ∕T 01085-2018 粘合襯剝離強(qiáng)力試驗方法
- 白龍江引水工程環(huán)境影響報告書(公示版)
- 《短視頻拍攝與制作》課件-3短視頻中期拍攝
- 瀏陽煙花術(shù)語大全
- 五星級酒店前廳管理常用表格
- 居民心理健康知識講座課件
- 《養(yǎng)老護(hù)理員》-課件:老年人安全防范及相關(guān)知識
- 2024年英語專業(yè)四級考試真題及詳細(xì)答案
- 成語故事葉公好龍
- MHT:中小學(xué)生心理健康檢測(含量表與評分說明)
- 制度修訂培訓(xùn)課件
評論
0/150
提交評論