基于JavaMail的常用類(lèi)詳細(xì)介紹
應(yīng)用服務(wù)器
(1) javax.mail.Properties類(lèi)
JavaMail需要Properties來(lái)創(chuàng)建一個(gè)session對(duì)象。它將尋找字符串"mail.smtp.host",屬性值就是發(fā)送郵件的主機(jī).
用法:
Properties props = new Properties ();
props.put("mail.smtp.host", "smtp.163.com");//可以換上你的smtp主機(jī)名。
Properties props = new Properties ();
props.put("mail.smtp.host", "smtp.163.com");//可以換上你的smtp主機(jī)名。
(2) javax.mail.Session類(lèi)
這個(gè)Session類(lèi)代表JavaMail 中的一個(gè)郵件session. 每一個(gè)基于 JavaMail的應(yīng)用程序至少有一個(gè)session但是可以有任意多的session。 在這個(gè)例子中, Session對(duì)象需要知道用來(lái)處理郵件的SMTP 服務(wù)器。
用法:
Session sendMailSession;
sendMailSession = Session.getInstance(props, null);
Session sendMailSession;
sendMailSession = Session.getInstance(props, null);
(3) javax.mail.Transport類(lèi)
郵件是既可以被發(fā)送也可以被受到。JavaMail使用了兩個(gè)不同的類(lèi)來(lái)完成這兩個(gè)功能:Transport 和Store. Transport 是用來(lái)發(fā)送信息的,而Store用來(lái)收信。對(duì)于這的教程我們只需要用到Transport對(duì)象。
用法:
Transport transport;
transport = sendMailSession.getTransport("smtp");
Transport transport;
transport = sendMailSession.getTransport("smtp");
用JavaMail Session對(duì)象的getTransport 方法來(lái)初始化Transport。傳過(guò)去的字符串申明了對(duì)象所要使用的協(xié)議,如"smtp"。這將為我們省了很多時(shí)間。因?yàn)镴avaMail以境內(nèi)置了很多協(xié)議的實(shí)現(xiàn)方法。
注意: JavaMail并不是絕對(duì)支持每一個(gè)協(xié)議,目前支持IMAP、 SMTP和 POP3.
(4) javax.mail.MimeMessage類(lèi)
Message對(duì)象將存儲(chǔ)我們實(shí)際發(fā)送的電子郵件信息,Message對(duì)象被作為一個(gè)MimeMessage對(duì)象來(lái)創(chuàng)建并且需要知道應(yīng)當(dāng)選擇哪一個(gè)JavaMail session。
用法:
Message newMessage = new MimeMessage(sendMailSession);
Message newMessage = new MimeMessage(sendMailSession);
Message newMessage = new MimeMessage(sendMailSession);
(5) javax.mail.InternetAddress類(lèi)
一旦您創(chuàng)建了 Session 和 Message,并將內(nèi)容填入消息后,就可以用Address確定信件地址了。和 Message 一樣,Address 也是個(gè)抽象類(lèi)。您用的是Javax.mail.internet.InternetAddress 類(lèi).
用法:
InternetAddress from=new InternetAddress("xxf@cafe.com");
InternetAddress from=new InternetAddress("xxf@cafe.com");
(6) javax.mail.Store類(lèi)
Store類(lèi)實(shí)現(xiàn)特定郵件協(xié)議上的讀、寫(xiě)、監(jiān)視、查找等操作。通過(guò)Javax.mail.Store類(lèi)可以訪問(wèn)Javax.mail.Folder類(lèi)。
用法:
Store store=s.getSorte("pop3");//s為一個(gè)郵件會(huì)話
store.connect(popserver,username,password);//通過(guò)你提供的pop地址,用戶名和密碼登錄你的郵箱
Store store=s.getSorte("pop3");//s為一個(gè)郵件會(huì)話
store.connect(popserver,username,password);//通過(guò)你提供的pop地址,用戶名和密碼登錄你的郵箱
(7) javax.mail.Folder類(lèi)
Folder類(lèi)用于分級(jí)組織郵件,并提供照J(rèn)avax.mail.Message格式訪問(wèn)email的能力。
用法:
Folder folder=store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Folder folder=store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
(8) javax.mail.Internet.MimeMultpart
一般保存電子郵件內(nèi)容的容器是Multipart抽象類(lèi),它定義了增加和刪除及獲得電子郵件不同部分內(nèi)容的方法.由于Multipart是抽象類(lèi),我們必須為它使用一個(gè)具體的子類(lèi),JavaMail API提供javax.mail.Internet.MimeMultpart類(lèi)來(lái)使用MimeMessage對(duì)象.
用法:
MimeMultipart multipart=new MimeMultipart();
MimeMultipart multipart=new MimeMultipart();
注:我們使用MimeMultipart對(duì)象的一個(gè)方法是addBodyPart(),它在我們的電子郵件內(nèi)容里添加BodyPart(BodyPart類(lèi)在下面緊接著要介紹)對(duì)象.消息可以有很多部分,一個(gè)BodyPart可以代表一個(gè)部分.
(9) javax.mail.Internet.MimeBodyPart類(lèi)
MimeBodyPart是BodyPart具體用于mimeMessage的一個(gè)子類(lèi).
MimeBodyPart對(duì)象代表一個(gè)MimeMessage對(duì)象內(nèi)容的一部分.每個(gè)MimeBodyPart被認(rèn)為有兩部分:
⊙一個(gè)MIME類(lèi)型
⊙匹配這個(gè)類(lèi)型的內(nèi)容
用法:
MimeBodyPart mdp=new MimeBodyPart();
String text="Hello JavaMail!";
mdp.setContent(text,"text/plain");//定義MIME類(lèi)型為text/plain,并設(shè)置MimeBodyPart的內(nèi)容.
MimeBodyPart mdp=new MimeBodyPart();
String text="Hello JavaMail!";
mdp.setContent(text,"text/plain");//定義MIME類(lèi)型為text/plain,并設(shè)置MimeBodyPart的內(nèi)容.
(10) javax.activation.DataHandler類(lèi)(包含在JAF中)
JavaMail API不限制信息只為文本,任何形式的信息都可能作繭自縛MimeMessage的一部分.除了文本信息,作為文件附件包含在電子郵件信息的一部分是很普遍的.JavaMail API通過(guò)使用DataHandler對(duì)象,提供一個(gè)允許我們包含非文本BodyPart對(duì)象的簡(jiǎn)便方法.
用法:
DataHandler dh=new DataHandler(text,type);
mdp.setDatahandler(dh);//mdp是一個(gè)MimeBodyPart對(duì)象
DataHandler dh=new DataHandler(text,type);
mdp.setDatahandler(dh);//mdp是一個(gè)MimeBodyPart對(duì)象
(11) javax.activation.FileDataSource類(lèi)(包含在JAF中)
一個(gè)FileDataSource對(duì)象可以表示本地文件和服務(wù)器可以直接訪問(wèn)的資源.一個(gè)本地文件可以通過(guò)創(chuàng)建一個(gè)新的MimeBodyPart對(duì)象附在一個(gè)mimeMessage對(duì)象上.
用法:
MimeMultipart mm=new MimeMultipart();
MimeBodyPart mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource("c:/exam.txt");
mdp.setDataHandler(new DataHandler(fds)); //設(shè)置數(shù)據(jù)源
mm.addBodyPart(mdp); //為當(dāng)前消息MimeMultipart對(duì)象增加MimeBodyPart
MimeMultipart mm=new MimeMultipart();
MimeBodyPart mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource("c:/exam.txt");
mdp.setDataHandler(new DataHandler(fds)); //設(shè)置數(shù)據(jù)源
mm.addBodyPart(mdp); //為當(dāng)前消息MimeMultipart對(duì)象增加MimeBodyPart
(12) javax.activation.URLDataSource類(lèi)(包含在JAF中)
遠(yuǎn)程資源,URL不會(huì)指向它們,由一個(gè)URLDataSource對(duì)象表示.一個(gè)遠(yuǎn)程資源可以通過(guò)創(chuàng)建一個(gè)新mimeBodyPart對(duì)象附在一個(gè)mimeMessage對(duì)象上(同F(xiàn)ileDataSource差不多).
用法:
//與FileDataSource唯一不同的是數(shù)據(jù)源的設(shè)置:
URLDataSource uds=new URLDataSource("/JAVA/UploadFiles_6441/200703/20070320105128501.gif");
- java中javamail發(fā)送帶附件的郵件實(shí)現(xiàn)方法
- Java基于JavaMail實(shí)現(xiàn)向QQ郵箱發(fā)送郵件
- java中javamail收發(fā)郵件實(shí)現(xiàn)方法
- Java程序中使用JavaMail發(fā)送帶圖片和附件的郵件
- JavaMail訪問(wèn)Hotmail郵箱
- struts2集成javamail發(fā)郵件示例詳解
- JavaMail實(shí)現(xiàn)發(fā)送超文本(html)格式郵件的方法
- JavaWeb中使用JavaMail實(shí)現(xiàn)發(fā)送郵件功能實(shí)例詳解
- javamail 發(fā)送郵件的實(shí)例代碼分享
- 使用JavaMail發(fā)送郵件保證成功的方法
相關(guān)文章
kafka啟動(dòng)報(bào)錯(cuò)(Cluster ID)不匹配問(wèn)題以及解決
這篇文章主要介紹了kafka啟動(dòng)報(bào)錯(cuò)(Cluster ID)不匹配問(wèn)題以及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Java返回文件時(shí)為圖片或pdf等設(shè)置在線預(yù)覽或下載功能
這篇文章主要介紹了Java返回文件時(shí)為圖片或pdf等設(shè)置在線預(yù)覽或下載功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01詳解Java List的擴(kuò)容機(jī)制原理及應(yīng)用
在Java中,List是一種非常常用的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)有序的元素集合,本文將分析Java List的擴(kuò)容機(jī)制原理,并通過(guò)示例代碼和測(cè)試代碼來(lái)加強(qiáng)闡述內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08Java Robot應(yīng)用示例之機(jī)器人功能
這篇文章主要為大家詳細(xì)介紹了Java Robot應(yīng)用示例之機(jī)器人功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01微信小程序獲取手機(jī)號(hào),后端JAVA解密流程代碼
這篇文章主要介紹了微信小程序獲取手機(jī)號(hào),后端JAVA解密流程的代碼,幫助大家更好的利用Java開(kāi)發(fā),感興趣的朋友可以了解下2020-09-09MyBatis中select語(yǔ)句中使用String[]數(shù)組作為參數(shù)的操作方法
在 MyBatis 中,如何在 mapper.xml 配置文件中 select 語(yǔ)句中使用 String[] 數(shù)組作為參數(shù)呢,并且使用IN關(guān)鍵字來(lái)匹配數(shù)據(jù)庫(kù)中的記錄,這篇文章主要介紹了MyBatis中select語(yǔ)句中使用String[]數(shù)組作為參數(shù),需要的朋友可以參考下2023-12-12