你希望在jsp中建立一個郵件發送收取工具嗎?下面將介紹的就是在jsp中建立一個郵件發送收取工具。在這篇文章中你可以瞭解到JavaMail API的一些要點以及如何


在JSP中使用它。本文中還包括了在JSP中使用JavaMail的實例。JavaMail是JSP應用軟體中相當強大的API。

閱讀這篇文章需要對JSP、JavaBeans和JavaMail有一定的初步瞭解。當然,有關於JavaMail的知識你可以通過閱讀這篇文章來獲得。如果你對於以上三項一無所知,


但你所使用的伺服器支持JSP和JavaMail的話,你可以僅僅通過複製/粘貼來使用它們。


什麼是JavaMail


JavaMail是Sun發佈的用來處理email的API。它可以方便地執行一些常用的郵件傳輸。


雖然JavaMail是Sun的API之一,但它目前還沒有被加在標準的java開發套件中(Java Development Kit),這就意味著你在使用前必須另外下載JavaMail檔。除此以


外,你還需要有Sun的JavaBeans Activation Framework (JAF)。JavaBeans Activation Framework的運行很複雜,在這裡簡單的說就是JavaMail的運行必須得依


賴於它的支持。在Windows 2000下使用需要指定這些檔的路徑,在其它的作業系統上也類似。


接下來要講解的是這篇指南的最難理解的部分。


這篇指南包括三部分:HTML表格、關於JavaMail、JavaMail和JSP的結合。


 


第一部分:HTML表格


第一部分提供了一個最基本的基於HTML的email發送收取程式的例子。第二部分則講述JavaMail的工作原理。第三部分則介紹將JavaMail加入JSP,創建一個基本的


email發送收取程式。




劃分組件


JSP最重要的特性是能將整個網頁劃分成一些細小的組件。這裡使用的元件包括:


●一個用來將email的資訊發送給JSP的HTML表格;


●一個JSP頁面用來處理和發送信件。


第一步,就是創建一個HTML表格用來給JSP頁面發送資訊。你可以將以下的HTML代碼複製到你的電腦上:




用來發送email的HTML原始程式碼
































To:




From:




Subject:




Message:














 


以上這段程式將創建一個包含email基本資訊(例如:收件位址、發送位址、主題和內容)的檔。當然你可以根據你自己的需要來決定這個檔包含那些資訊。


這個HTML檔的使用有兩點要求:第一點是生成的檔必須發送給接下來將介紹的程式使用。在這個例子中就是sendmail.jsp,但在你使用時,必須用這個檔在系統裡的


URL來代替它;第二點是必須有空間來允許用戶發送email。


第二部分:關於JavaMail


文檔的使用




下載的JavaMail API中帶的文檔是很有用的。你可以在JavaMail下的/docs/javadocs/index.html找到它。第二部分主要將分析郵件程式的元件。你可以通過閱讀文


檔來獲得更多這方面的資訊。


元件發送郵件需要使用JavaMail,它使對郵件的操作變得簡單易用。


屬性物件


JavaMail需要創建一個格式為"mail.smtp.host"的檔用來發送資訊。


Properties props = new Properties ();


props.put("mail.smtp.host", "smtp.jspinsider.com"); 對話物件


所有的基於JavaMail的程式都至少需要一個或全部的對話目標。


Session sendMailSession;


sendMailSession = Session.getInstance(props, null);


傳輸


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


Transport transport;


transport = sendMailSession.getTransport("smtp");


使用JavaMail能為我們節約大量的時間。JavaMail能代替所有的SMTP的工作。


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


資訊物件


資訊物件將把你所發送的郵件真實的反映出來。


Message newMessage = new MimeMessage(sendMailSession);


這就是我們所需要的全部四個物件。下一步將是如何將物件加入到JSP中。


 




第三部分:JavaMail和JSP的結合


創建JSP

下面我們將開始將他們結合在一起。最重要的一點是要確認根據頁面指示分類。還要記得在郵件上標注java.util.date。


<%@ page

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

%>


 


其次,創建郵件發送的確認資訊。確認資訊可以是任意的,一般常用"你的郵件已經發送出去了(Your mail has been sent)。"


資訊是如何創建和發送的


我們在第二部分裡已經討論過資訊物件的創建。我們下面將對資訊進行操作。這就和設置資訊物件的屬性一樣簡單。你可以通過下面的程式來實現這項操作。


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裡面。要注意每一個錯誤資訊,並將它回饋給用戶。代碼如下,你可以通過複製它們直接使用:


Sample JSP email Utility Using JavaMail

<%@ page

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

%>





JSP meets JavaMail, what a sweet combo.





<%

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

%>

Your mail has been sent.



<%

}

catch(MessagingException m)

{

out.println(m.toString());

}

%>





狼翔月影 發表在 痞客邦 PIXNET 留言(0) 人氣()