JSP Insider 5: 在JSP中使用JavaMail---4

來源:互聯網
上載者:User
js 第三部分:在JSP中使用JavaMail

構造JSP
現在,將介紹如何把這些對象放到一起,需要用頁面指示語把這些對象匯入,這點是很關鍵的。注意:也要用到java.util.date,因為email的時戳要用到java.util.date。

<%@ page
import= " javax.mail.*, javax.mail.internet.*,
  =>javax.activation.*, java.util.*"
%>
下一步要建立一個特定的資訊,表示郵件已經被發送。你可以自己設定該資訊,通常是:“Your mail has been sent。”

如何建立和發送訊息

建立Message對象的代碼在第二部分已經出現了。現在我們可以處理該訊息。很簡單,只要在對象中使用get和 set properties方法即可。使用post過來的資訊作為參數,例如request.getParameter()就是個很有用的方法,可以擷取post發送來的參數。參見Listing B。
Listing B:

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"));


最後就是發送訊息了,JavaMail工具使得這件事變得很簡單:

transport.send(newMessage);
把它們組合在一起

剛才我們介紹的是一個個的分開的組件,現在可以把它們組合在一起,放在一個JSP指令碼中。注意,要加入捕捉錯誤並顯示給使用者的指令碼語句。JSP指令碼請見Listing C。要使用該指令碼,只要把指令碼拷貝到你的電腦中即可。
Listing C:

<%@ 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>


這就行了!如果你打算瞭解JavaMail所做的一步步的動作,就使用'sendMailSession.setDebug(true);'。

現在你已經對JSP 和JavaMail的使用有所入門。如果想瞭解更多資訊,請參見Sun's JavaMail links。

如何做得更好?

最重要的是這個工具能夠運行。但我們可以改進它。後續教程將介紹:

為什麼不把表單放在JSP中?
用戶端的驗證
如何使用beans來代替那些雜亂的不能重用的代碼。
通過JSP,把功能和設計分開。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.