明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

在JSP中使用JavaMail(二)

[摘要]第二部分:關(guān)于JavaMail 文檔的使用   下載的JavaMail API中帶的文檔是很有用的。你可以在JavaMail下的/docs/javadocs/index.html找到它。第二部分主要將分析郵件程序的組件。你可以通過閱讀文檔來獲得更多這方面的信息。   組件發(fā)送郵件需要使用JavaM...
第二部分:關(guān)于JavaMail
文檔的使用
  下載的JavaMail API中帶的文檔是很有用的。你可以在JavaMail下的/docs/javadocs/index.html找到它。第二部分主要將分析郵件程序的組件。你可以通過閱讀文檔來獲得更多這方面的信息。

  組件發(fā)送郵件需要使用JavaMail,它使對(duì)郵件的操作變得簡(jiǎn)單易用。

屬性對(duì)象
  JavaMail需要?jiǎng)?chuàng)建一個(gè)格式為"mail.smtp.host"的文件用來發(fā)送信息。

   Properties props = new Properties ();

   props.put("mail.smtp.host", "smtp.jspinsider.com");

對(duì)話對(duì)象
  所有的基于JavaMail的程序都至少需要一個(gè)或全部的對(duì)話目標(biāo)。

   Session sendMailSession;

   sendMailSession = Session.getInstance(props, null);

傳輸
  郵件的傳輸只有送出或受到兩種狀態(tài)。JavaMail將這兩種不同狀態(tài)描述為傳輸和儲(chǔ)存。傳輸將送出郵件,而儲(chǔ)存將收取郵件。

   Transport transport;

   transport = sendMailSession.getTransport("smtp");

  使用JavaMail能為我們節(jié)約大量的時(shí)間。JavaMail能代替所有的SMTP的工作。

  注意:JavaMail并不能完全的支持所有的郵件發(fā)送收取工作。它目前僅支持IMAP、SMTP和POP3,除此以外你只有等待新的JavaMail版本或自己開發(fā)協(xié)議。

信息對(duì)象
  信息對(duì)象將把你所發(fā)送的郵件真實(shí)的反映出來。

   Message newMessage = new MimeMessage(sendMailSession);

  這就是我們所需要的全部四個(gè)對(duì)象。下一步將是如何將對(duì)象加入到JSP中。

  

第三部分:JavaMail和JSP的結(jié)合
創(chuàng)建JSP
  下面我們將開始將他們結(jié)合在一起。最重要的一點(diǎn)是要確認(rèn)根據(jù)頁面指示分類。還要記得在郵件上標(biāo)注java.util.date。

   < %@ page

   import= " javax.mail.*, javax.mail.internet.*, javax.activation.*, java.util.*"

   %>

  其次,創(chuàng)建郵件發(fā)送的確認(rèn)信息。確認(rèn)信息可以是任意的,一般常用"你的郵件已經(jīng)發(fā)送出去了(Your mail has been sent)。"

信息是如何創(chuàng)建和發(fā)送的
  我們?cè)诘诙糠掷镆呀?jīng)討論過信息對(duì)象的創(chuàng)建。我們下面將對(duì)信息進(jìn)行操作。這就和設(shè)置信息對(duì)象的屬性一樣簡(jiǎn)單。你可以通過下面的程序來實(shí)現(xiàn)這項(xiàng)操作。

   newMessage.setFrom(new InternetAddress(request.getParameter("from")));

   newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("to")));

   newMessage.setSubject(request.getParameter("subject"));

   newMessage.setSentDate(new Date());

   newMessage.setText(request.getParameter("text"));

  現(xiàn)在將開始發(fā)送信息。通過JavaMail來實(shí)現(xiàn)它非常簡(jiǎn)單。

   transport.send(newMessage);

將所有的組件結(jié)合在一起
  現(xiàn)在所有的組件都已經(jīng)齊全了,F(xiàn)在將它們都放在JSP里面。要注意每一個(gè)錯(cuò)誤信息,并將它反饋給用戶。代碼如下,你可以通過復(fù)制它們直接使用:

  Sample JSP email Utility Using JavaMail

  < %@ page

   import=" javax.mail.*, javax.mail.internet.*, javax.activation.*,java.util.*"

   %>

  < html>

  < head>

  < TITLE>JSP meets JavaMail, what a sweet combo.< /TITLE>

  < /HEAD>

  < BODY>

  < %

   try{

   Properties props = new Properties();

   Session sendMailSession;

   Store store;

   Transport transport;

   sendMailSession = Session.getInstance(props, null);

   props.put("mail.smtp.host", "smtp.jspinsider.com");

   Message newMessage = new MimeMessage(sendMailSession);

   newMessage.setFrom(new InternetAddress(request.getParameter("from")));

   newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("to")));

   newMessage.setSubject(request.getParameter("subject"));

   newMessage.setSentDate(new Date());

   newMessage.setText(request.getParameter("text"));

   transport = sendMailSession.getTransport("smtp");

   transport.send(newMessage);

   %>

  < P>Your mail has been sent.< /P>

  < %

   }

   catch(MessagingException m)

   {

   out.println(m.toString());

   }

  %>

  < /BODY>

  < /HTML>

  你會(huì)很快體會(huì)到JavaMail的方便之處,JSP和JavaMail將是未來的希望。