在JSP中使用JavaMail(下)

來源:互聯網
上載者:User

第二部分:關於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.*"
%>
<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> 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.