對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2008/3/18 6:50:38
此處利用java mail來寄信,java mail是J2EE中較晚加入的API,使用時需另外安裝Java Mail和JavaBeans Activation Framework兩個package。
<%@ page contentType="text/html; charset=big5" language="java" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
impor Java Mail和JavaBeans Activation Framework兩個package中需要用到的class
<%@ page import="javax.mail.*" %>
<%@ page import="javax.mail.internet.*" %>
<%@ page import="javax.activation.*" %>
<%
利用session得到validate.jsp所傳遞過來的資料
String username = (String) session.getAttribute("a");
String body = (String) session.getAttribute("b");
String myname = (String) session.getAttribute("c");
String toaddress = (String) session.getAttribute("d");
String fromaddress = (String) session.getAttribute("e");
String picture = (String) session.getAttribute("f");
String mypicture = (String) session.getAttribute("g");
template.txt中記錄著電子賀卡外?#91;的樣板,以下?#123;式將使用者輸入的資料套入樣板,最後結果存入變數content中
FileInputStream fin = new FileInputStream(new File("D:\\jakarta-tomcat-5.0.16\\webapps\\ecard\\template.txt")) ;
BufferedReader reader = new BufferedReader(new InputStreamReader(fin));
StringBuffer message = new StringBuffer();
Calendar rightnow = Calendar.getInstance();
rightnow.setTime(new Date());
String content = null,line = null;
int index = 0;
StringBuffer line1 = null;
while ((line = reader.readLine()) != null)
{
if (line.indexOf("%getpic%") > 0 )
{
index = line.indexOf("%getpic%");
line1 = new StringBuffer(line);
if(picture.equals("other"))
{
line1.replace(index,index+8, mypicture);
}
else
{
line1.replace(index,index+8,"http://140.116.72.112:8080/ecard/image/" + picture);
}
message.append(line1);
}
if (line.indexOf("%getusername%") > 0 )
{
index = line.indexOf("%getusername%");
line1 = new StringBuffer(line);
line1.replace(index,index+13, username);
message.append(line1);
}else if (line.indexOf("%getbody%") > 0 )
{
index = line.indexOf("%getbody%");
line1 = new StringBuffer(line);
line1.replace(index,index+9, body);
message.append(line1);
} else if (line.indexOf("%getfromaddress%") > 0 )
{
index = line.indexOf("%getfromaddress%");
line1 = new StringBuffer(line);
line1.replace(index,index+16, fromaddress);
message.append(line1);
} else if (line.indexOf("%getmyname%") > 0 )
{
index = line.indexOf("%getmyname%");
line1 = new StringBuffer(line);
line1.replace(index,index+12, myname);
message.append(line1);
} else if (line.indexOf("%getyear%") > 0 )
{
index = line.indexOf("%getyear%");
line1 = new StringBuffer(line);
line1.replace(index,index+9, String.valueOf(rightnow.get(Calendar.YEAR)));
message.append(line1);
} else if (line.indexOf("%getmonth%") > 0 )
{
index = line.indexOf("%getmonth%");
line1 = new StringBuffer(line);
line1.replace(index,index+10, String.valueOf(rightnow.get(Calendar.MONTH)+1));
message.append(line1);
} else if (line.indexOf("%getdate%") > 0 )
{
index = line.indexOf("%getdate%");
line1 = new StringBuffer(line);
line1.replace(index,index+9, String.valueOf(rightnow.get(Calendar.DAY_OF_MONTH)));
message.append(line1);
}else{
line1 = new StringBuffer(line);
message.append(line1);
}
content = message.toString();
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>sent</title>
</head>
<body>
<%-- 以下為送信部分的?#123;式碼 --%>式
<%
boolean sessionDebug = false;
InternetAddress[] address;
//?#93;定所要用的Mail伺服器和所使用的傳輸協定
java.util.Properties props = System.getProperties();
props.put("mail.host","turtle.ee.ncku.edu.tw");
props.put("mail.transport.protocol","smtp");
//產生新的maill session
javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,null);
mailSession.setDebug(sessionDebug);
MimeMessage msg = new MimeMessage(mailSession);
//?#93;定傳送郵件的發信人
msg.setFrom(new InternetAddress(fromaddress));
//?#93;定收信人的信箱
address = InternetAddress.parse(toaddress,false);
msg.setRecipients(Message.RecipientType.TO, address);
//?#93;定郵件主題
msg.setSubject("電子賀卡");
//?#93;定發信時間
msg.setSentDate(new java.util.Date());
//?#93;定郵件內容
msg.setContent(content,"text/html");
//傳送郵件
Transport.send(msg);
out.print("<center> "+ "已順利送達"+ "</center> <br>");
out.print("<center> <a href=\"input.jsp\">返回</a></center>");
%>
</body>
</html>