在JSP中使用JavaMail(二)
發(fā)表時間:2024-05-18 來源:明輝站整理相關軟件相關文章人氣:
[摘要]第二部分:關于JavaMail 文檔的使用 下載的JavaMail API中帶的文檔是很有用的。你可以在JavaMail下的/docs/javadocs/index.html找到它。第二部分主要將分析郵件程序的組件。你可以通過閱讀文檔來獲得更多這方面的信息。 組件發(fā)送郵件需要使用JavaM...
第二部分:關于JavaMail
文檔的使用
下載的JavaMail API中帶的文檔是很有用的。你可以在JavaMail下的/docs/javadocs/index.html找到它。第二部分主要將分析郵件程序的組件。你可以通過閱讀文檔來獲得更多這方面的信息。
組件發(fā)送郵件需要使用JavaMail,它使對郵件的操作變得簡單易用。
屬性對象
JavaMail需要創(chuàng)建一個格式為"mail.smtp.host"的文件用來發(fā)送信息。
Properties props = new Properties ();
props.put("mail.smtp.host", "smtp.jspinsider.com");
對話對象
所有的基于JavaMail的程序都至少需要一個或全部的對話目標。
Session sendMailSession;
sendMailSession = Session.getInstance(props, null);
傳輸
郵件的傳輸只有送出或受到兩種狀態(tài)。JavaMail將這兩種不同狀態(tài)描述為傳輸和儲存。傳輸將送出郵件,而儲存將收取郵件。
Transport transport;
transport = sendMailSession.getTransport("smtp");
使用JavaMail能為我們節(jié)約大量的時間。JavaMail能代替所有的SMTP的工作。
注意:JavaMail并不能完全的支持所有的郵件發(fā)送收取工作。它目前僅支持IMAP、SMTP和POP3,除此以外你只有等待新的JavaMail版本或自己開發(fā)協議。
信息對象
信息對象將把你所發(fā)送的郵件真實的反映出來。
Message newMessage = new MimeMessage(sendMailSession);
這就是我們所需要的全部四個對象。下一步將是如何將對象加入到JSP中。
第三部分:JavaMail和JSP的結合
創(chuàng)建JSP
下面我們將開始將他們結合在一起。最重要的一點是要確認根據頁面指示分類。還要記得在郵件上標注java.util.date。
< %@ page
import= " javax.mail.*, javax.mail.internet.*, javax.activation.*, java.util.*"
%>
其次,創(chuàng)建郵件發(fā)送的確認信息。確認信息可以是任意的,一般常用"你的郵件已經發(fā)送出去了(Your mail has been sent)。"
信息是如何創(chuàng)建和發(fā)送的
我們在第二部分里已經討論過信息對象的創(chuà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"));
現在將開始發(fā)送信息。通過JavaMail來實現它非常簡單。
transport.send(newMessage);
將所有的組件結合在一起
現在所有的組件都已經齊全了,F在將它們都放在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將是未來的希望。