作者/出處:Blueski編譯(包含了2篇文章,前篇用了sun.net.smtp,後一篇用了javamail.
一、我們可以通過任何支援sun規範中的sun.net.smtp包的JSP引擎(如JSWDK)發送mail。
(警告:使用內建的internal Sun規範包,這將影響到你的jsp程式的可移植性。)
以下scriptlet利用SmtpClient類在jsp檔案中發送email。
<%@ page import="sun.net.smtp.SmtpClient, java.io.*" %>
<%
String from="gseshadri@hotmail.com";
String to="govind@jguru.com, govi@bigfoot.com";
try{
SmtpClient client = new SmtpClient("mail.xxxxx.xxx");
client.from(from);
client.to(to);
PrintStream message = client.startMessage();
message.println("To: " + to);
message.println("Subject: Sending email from JSP!");
message.println("This was sent from a JSP page!");
message.println();
message.println("Cool beans! :-)");
message.println();
message.println("Govind Seshadri");
message.println("jGuru.com");
message.println();
client.closeServer();
}
catch (IOException e){
System.out.println("ERROR SENDING EMAIL:"+e);
}
%>
二、 JavaMail是官方的 Java mail API,可參考 http://java.sun.com/products/javamail/。雖然該API比 sun.net.smtp.SmtpClient更豐富或者說更複雜,但它是可移植的。這裡重新建立了一個 MailSender類,它包含了 JavaMail API。如下所示:
// ms_ prefix is for MailSender class variables
// str prefix is for String
// astr prefix is for array of Strings
// strbuf prefix is for StringBuffers, etc.
public MailSender(
String strFrom, // sender
String[] astrTo, // recipient(s)
String[] astrBCC, // bcc recipient(s), optional
String strSubject, // subject
boolean debugging)
{
ms_strFrom = strFrom; // who the message is from
ms_astrTo = astrTo; // who (plural) the message is to
ms_debugging = debugging; // who (plural) the message is to