想在 JSP 中建立郵件收發工具嗎?本文將詳細介紹 JavaMail API 核心概念,並示範如何在 JSP 中整合 JavaMail 實作完整的郵件發送功能。JavaMail 是 JSP 應用開發中相當強大的 API。
需要具備 JSP、JavaBeans 與 JavaMail 基礎知識。若對這三項不熟,但伺服器支援 JSP 與 JavaMail,仍可透過複製貼上快速上手。
JavaMail 是 Sun 發布的處理電子郵件 API,能輕鬆執行常見郵件傳輸任務。雖屬 Sun API,但未包含在標準 JDK 中,使用前需額外下載 JavaMail 與 JavaBeans Activation Framework (JAF)。JAF 是 JavaMail 運作的必要支撐,Windows 2000 等環境需正確設定路徑。
本指南分為三部份:HTML 表單、JavaMail 運作原理、JSP 整合實作。
建立基本的郵件資訊輸入表單,包含收件者、寄件者、主旨、內文等欄位,表單送往 sendmail.jsp 處理。
<FORM action="sendmail.jsp" method="post">
<TABLE align="center">
<TR>
<TD width="50%">To:<BR><INPUT name="to" size="25"></TD>
<TD width="50%">From:<BR><INPUT name="from" size="25"></TD>
</TR>
<TR>
<TD colspan="2">Subject:<BR><INPUT name="subject" size="50"></TD>
</TR>
<TR>
<TD colspan="2"><P>Message:<BR><TEXTAREA name="text" rows=25 cols=85></TEXTAREA></P></TD>
</TR>
</TABLE>
<INPUT type="submit" name="cb_submit" value=" Send ">
<INPUT type="reset" name="cb_reset" value=" Clear ">
</FORM>
發送郵件需四個核心物件:
props.put("mail.smtp.host", "smtp.jspinsider.com")Session.getInstance(props, null)session.getTransport("smtp")new MimeMessage(session)JavaMail 目前支援 IMAP、SMTP、POP3 協定,其他協定需自行擴充。
完整的 JSP 郵件發送程式碼:
<%@ page import="javax.mail.*, javax.mail.internet.*, javax.activation.*, java.util.*" %>
<html><head><TITLE>JSP meets JavaMail</TITLE></head><BODY>
<%
try {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.jspinsider.com");
Session sendMailSession = Session.getInstance(props, null);
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 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 郵件功能開發變得簡單高效,JSP 與 JavaMail 的結合將為 Web 應用帶來更多可能性。