JSP與JavaMail之2(常用類介紹) - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- JSP與JavaMail之2(常用類介紹) (http://www.webasp.net/article/18/17595.htm) |
| -- 作者:未知 -- 發佈日期: 2005-04-18 |
| 3.JavaMail的常用類介紹 事先說明: 沒用過JavaMail的人可能看不懂這些介紹,不過不要緊,後面的文章有具體的實例,到時也可倒回來查看這些類的用法. (1) javax.mail.Properties類 JavaMail需要Properties來創建一個session對象。它將尋找字符串"mail.smtp.host",屬性值就是發送郵件的主機. 用法: Properties props = new Properties (); props.put("mail.smtp.host", "smtp.163.com");//可以換上你的smtp主機名。 (2) javax.mail.Session類 這個Session類代表JavaMail 中的一個郵件session. 每一個基於 JavaMail的應用程序至少有一個session但是可以有任意多的session。 在這個例子中, Session對像需要知道用來處理郵件的SMTP 服務器。 用法: Session sendMailSession; sendMailSession = Session.getInstance(props, null); (3) javax.mail.Transport類 郵件是既可以被發送也可以被受到。JavaMail使用了兩個不同的類來完成這兩個功能:Transport 和Store. Transport 是用來發送信息的,而Store用來收信。對於這的教程我們只需要用到Transport對象。 用法: Transport transport; transport = sendMailSession.getTransport("smtp"); 用JavaMail Session對象的getTransport 方法來初始化Transport。傳過去的字符串申明了對象所要使用的協議,如"smtp"。這將為我們省了很多時間。因為JavaMail以境內置了很多協議的實現方法。 注意: JavaMail並不是絕對支持每一個協議,目前支持IMAP、 SMTP和 POP3. (4) javax.mail.MimeMessage類 Message對像將存儲我們實際發送的電子郵件信息,Message對像被作為一個MimeMessage對像來創建並且需要知道應當選擇哪一個JavaMail session。 用法: Message newMessage = new MimeMessage(sendMailSession); (5) javax.mail.InternetAddress類 一旦您創建了 Session 和 Message,並將內容填入消息後,就可以用Address確定信件地址了。和 Message 一樣,Address 也是個抽像類。您用的是Javax.mail.internet.InternetAddress 類. 用法: InternetAddress from=new InternetAddress("xxf@cafe.com"); (6) javax.mail.Store類 Store類實現特定郵件協議上的讀、寫、監視、查找等操作。通過Javax.mail.Store類可以訪問Javax.mail.Folder類。 用法: Store store=s.getSorte("pop3");//s為一個郵件會話 store.connect(popserver,username,password);//通過你提供的pop地址,用戶名和密碼登錄你的郵箱 (7) javax.mail.Folder類 Folder類用於分級組織郵件,並提供照Javax.mail.Message格式訪問email的能力。 用法: Folder folder=store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); (8) javax.mail.Internet.MimeMultpart 一般保存電子郵件內容的容器是Multipart抽像類,它定義了增加和刪除及獲得電子郵件不同部分內容的方法.由於Multipart是抽像類,我們必須為它使用一個具體的子類,JavaMail API提供javax.mail.Internet.MimeMultpart類來使用MimeMessage對像. 用法: MimeMultipart multipart=new MimeMultipart(); 注:我們使用MimeMultipart對象的一個方法是addBodyPart(),它在我們的電子郵件內容裡添加BodyPart(BodyPart類在下面緊接著要介紹)對像.消息可以有很多部分,一個BodyPart可以代表一個部分. (9) javax.mail.Internet.MimeBodyPart類 MimeBodyPart是BodyPart具體用於mimeMessage的一個子類. MimeBodyPart對像代表一個MimeMessage對像內容的一部分.每個MimeBodyPart被認為有兩部分: ☉一個MIME類型 ☉匹配這個類型的內容 用法: MimeBodyPart mdp=new MimeBodyPart(); String text="Hello JavaMail!"; mdp.setContent(text,"text/plain");//定義MIME類型為text/plain,並設置MimeBodyPart的內容. (10) javax.activation.DataHandler類(包含在JAF中) JavaMail API不限制信息只為文本,任何形式的信息都可能作繭自縛MimeMessage的一部分.除了文本信息,作為文件附件包含在電子郵件信息的一部分是很普遍的.JavaMail API通過使用DataHandler對像,提供一個允許我們包含非文本BodyPart對象的簡便方法. 用法: DataHandler dh=new DataHandler(text,type); mdp.setDatahandler(dh);//mdp是一個MimeBodyPart對像 (11) javax.activation.FileDataSource類(包含在JAF中) 一個FileDataSource對象可以表示本地文件和服務器可以直接訪問的資源.一個本地文件可以通過創建一個新的MimeBodyPart對像附在一個mimeMessage對像上. 用法: MimeMultipart mm=new MimeMultipart(); MimeBodyPart mdp=new MimeBodyPart(); FileDataSource fds=new FileDataSource("c:/exam.txt"); mdp.setDataHandler(new DataHandler(fds)); //設置數據源 mm.addBodyPart(mdp); //為當前消息MimeMultipart對像增加MimeBodyPart (12) javax.activation.URLDataSource類(包含在JAF中) 遠程資源,URL不會指向它們,由一個URLDataSource對像表示.一個遠程資源可以通過創建一個新mimeBodyPart對像附在一個mimeMessage對像上(同FileDataSource差不多). |
| webasp.net |