第二部分關於JavaMail
文檔的使用
下載的JavaMail API中帶的文檔是很有用的你可以在JavaMail下的/docs/javadocs/indexhtml找到它第二部分主要將分析郵件程序的組件你可以通過閱讀文檔來獲得更多這方面的信息
組件發送郵件需要使用JavaMail它使對郵件的操作變得簡單易用
屬性對象
JavaMail需要創建一個格式為mailsmtphost的文件用來發送信息
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並不能完全的支持所有的郵件發送收取工作它目前僅支持IMAPSMTP和POP除此以外你只有等待新的JavaMail版本或自己開發協議
信息對象
信息對象將把你所發送的郵件真實的反映出來
Message newMessage = new MimeMessage(sendMailSession);
這就是我們所需要的全部四個對象下一步將是如何將對象加入到JSP中
第三部分JavaMail和JSP的結合
創建JSP
下面我們將開始將他們結合在一起最重要的一點是要確認根據頁面指示分類還要記得在郵件上標注javautildate
<%@ 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將是未來的希望
[] []
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20727.html