在JSP中使用JavaMail---4(轉)

第三部分:在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,把功能和設計分開

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章