第二部分关于JavaMail
文档的使用
下载的JavaMail API中带的文档是很有用的你可以在JavaMail下的/docs/javadocs/indexhtml找到它第二部分主要将分析邮件程序的组件你可以通过阅读文档来获得更多这方面的信息
组件发送邮件需要使用JavaMail它使对邮件的操作变得简单易用
属性对象
JavaMail需要创建一个格式为mailsmtphost的文件用来发送信息
Properties props = new Properties ();
propsput(mailsmtphost smtpjspinsidercom);
对话对象
所有的基于JavaMail的程序都至少需要一个或全部的对话目标
Session sendMailSession;
sendMailSession = SessiongetInstance(props null);
传输
邮件的传输只有送出或受到两种状态JavaMail将这两种不同状态描述为传输和储存传输将送出邮件而储存将收取邮件
Transport transport;
transport = sendMailSessiongetTransport(smtp);
使用JavaMail能为我们节约大量的时间JavaMail能代替所有的SMTP的工作
注意JavaMail并不能完全的支持所有的邮件发送收取工作它目前仅支持IMAPSMTP和POP除此以外你只有等待新的JavaMail版本或自己开发协议
信息对象
信息对象将把你所发送的邮件真实的反映出来
Message newMessage = new MimeMessage(sendMailSession);
这就是我们所需要的全部四个对象下一步将是如何将对象加入到JSP中
第三部分JavaMail和JSP的结合
创建JSP
下面我们将开始将他们结合在一起最重要的一点是要确认根据页面指示分类还要记得在邮件上标注javautildate
<%@ page
import= javaxmail* javaxmailinternet* javaxactivation* javautil*
%>
其次创建邮件发送的确认信息确认信息可以是任意的一般常用你的邮件已经发送出去了(Your mail has been sent)
信息是如何创建和发送的
我们在第二部分里已经讨论过信息对象的创建我们下面将对信息进行操作这就和设置信息对象的属性一样简单你可以通过下面的程序来实现这项操作
newMessage
setFrom(new InternetAddress(request
getParameter(
from
)));
newMessagesetRecipient(MessageRecipientTypeTO new InternetAddress(requestgetParameter(to)));
newMessagesetSubject(requestgetParameter(subject));
newMessagesetSentDate(new Date());
newMessagesetText(requestgetParameter(text));
现在将开始发送信息通过JavaMail来实现它非常简单
transport
send(newMessage);
将所有的组件结合在一起
现在所有的组件都已经齐全了现在将它们都放在JSP里面要注意每一个错误信息并将它反馈给用户代码如下你可以通过复制它们直接使用
Sample JSP email Utility Using JavaMail
<%@ page
import= javaxmail* javaxmailinternet* javaxactivation*javautil*
%>
<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 = SessiongetInstance(props null);
propsput(mailsmtphost smtpjspinsidercom);
Message newMessage = new MimeMessage(sendMailSession);
newMessagesetFrom(new InternetAddress(requestgetParameter(from)));
newMessagesetRecipient(MessageRecipientTypeTO new InternetAddress(requestgetParameter(to)));
newMessagesetSubject(requestgetParameter(subject));
newMessagesetSentDate(new Date());
newMessagesetText(requestgetParameter(text));
transport = sendMailSessiongetTransport(smtp);
transportsend(newMessage);
%>
<P>Your mail has been sent</P>
<%
}
catch(MessagingException m)
{
outprintln(mtoString());
}
%>
</BODY>
</HTML>
你会很快体会到JavaMail的方便之处JSP和JavaMail将是未来的希望
[] []