用JSP傳送EMAIL(JavaMail簡易實現版)

NO IMAGE

 在這裡可以下載JAVAMAIL包 http://java.sun.com/products/javamail/

在解壓後,將activation.jar和mail.jar複製到 /WEB-INF/lib 目錄後,JAVAMAIL便可以正常使用了

下面sendmail.jsp 內容如下

<%@page contentType=”text/html;charset=gb2312″%>
<%@ page import=”java.util.*, javax.mail.*, javax.mail.internet.*” %>
<html>
<head>
<title>JavaMail 電子郵件傳送系統</title>
</head>
<body>

<%
// 以下變數為使用者根據自己的情況設定
String smtphost = “smtp.163.com”; // 傳送郵件伺服器
String user = “test”; // 郵件伺服器登入使用者名稱
String password = “tset”; // 郵件伺服器登入密碼
String from = test@163.com; // 傳送人郵件地址
String to = test@sohu.com; // 接受人郵件地址
String subject = “JavaMail 電子郵件傳送系統測試”; // 郵件標題
String body = “JavaMail 電子郵件傳送系統”; // 郵件內容

// 以下為傳送程式,使用者無需改動
try {
Properties props = new Properties();
props.put(“mail.smtp.host”, smtphost);
props.put(“mail.smtp.auth”,”true”);
Session ssn = Session.getInstance(props, null);

MimeMessage message = new MimeMessage(ssn);

InternetAddress fromAddress = new InternetAddress(from);
message.setFrom(fromAddress);
InternetAddress toAddress = new InternetAddress(to);
message.addRecipient(Message.RecipientType.TO, toAddress);

message.setSubject(subject);
message.setText(body);

Transport transport = ssn.getTransport(“smtp”);
transport.connect(smtphost, user, password);
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
//transport.send(message);
transport.close();
%><p>你的郵件已傳送,請返回。</p><%
} catch(Exception m) {
out.println(m.toString());
m.printStackTrace();
}%>
</BODY>
</HTML>

注意:在使用者名稱和密碼都沒有問題的情況下,如果程式碼丟擲javax.mail.AuthenticationFailedException異常,先用OutLook測試一下看能否進行正常的收發郵件,有時信箱如果是新註冊的話,郵件的服務商預設剛註冊的帳號是不能使用pop3的。例如163.com在我進行程式碼測試時,剛剛註冊的帳號是沒有許可權使用該功能的,所以就會丟擲上述的異常。