JSP實現郵件發送機制

最近寫項目用到JSP發送郵件的功能,找了一下資料,其實也挺簡單。首先,需要兩個jar包庫,

JavaMail:下載地址:http://www.oracle.com/technetwork/java/index-138643.html

JavaBeans Activation Framework(JAF):下載地址:http://www.oracle.com/technetwork/java/javase/jaf-136260.html

下載解壓後,將會看到一系列jar包。將mail.jar包和activation.jar包加入CLASSPATH變量中,或者直接將解壓後的所有jar包拷貝到

tomcat的lib文件夾下,刷新eclipse,重啓tomcat即可,下面是源代碼:

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%@ page import="java.io.*,java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*"%>
<%
	class MyAuthenticator extends javax.mail.Authenticator 
	{
		private String strUser;
		private String strPwd;

		public MyAuthenticator(String user, String password) 
		{
			this.strUser = user;
			this.strPwd = password;
		}

		protected PasswordAuthentication getPasswordAuthentication() 
		{
			return new PasswordAuthentication(strUser, strPwd);
		}
	}

	String result; //郵件發送的結果

	String to = "2********[email protected]"; // 收件人的電子郵件
	String from = "1*******[email protected]"; // 發件人的電子郵件
	String host = "smtp.163.com"; // 發送電子郵件的主機,這裏利用163郵箱做中介,在郵箱設置中可以設置smtp,找到SMTP的相關主機名

	Properties properties = System.getProperties(); // 獲取系統屬性對象
	properties.setProperty("mail.smtp.host", host); // 設置郵件服務器
	// Session mailSession = Session.getDefaultInstance(properties);   // 獲取默認的Session對象。 
	properties.put("mail.smtp.auth", "true");
	MyAuthenticator authentic = new MyAuthenticator("你所做主機的163郵箱的賬號","賬號密碼");
	Session mailSession = Session.getDefaultInstance(properties,authentic);

	try {
		MimeMessage message = new MimeMessage(mailSession); // 創建一個默認的MimeMessage對象。
		message.setFrom(new InternetAddress(from)); // 設置 From: 頭部的header字段
		message.addRecipient(Message.RecipientType.TO,
				new InternetAddress(to)); // 設置 To: 頭部的header字段
		message.setSubject("This is the Subject Line!"); // 設置 Subject: header字段
		message.setText("This is actual message"); // 現在設置的實際消息

		Transport.send(message); // 發送消息
		result = "發送郵件成功....";
	} catch (MessagingException mex) {
		mex.printStackTrace();
		result = "Error: unable to send message....";
	}
%>
<html>
<head>
<title>發送郵件</title>
</head>
<body>
	<center>
		<h1>發送郵件</h1>
	</center>
	<p align="center">
		<%
			out.println("Result: " + result + "\n");
		%>
	</p>
</body>
</html>
上面163的SMTP具體設置見:http://blog.csdn.net/u014267402/article/details/40684833  中的第一步。


本人經驗,僅供參考!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章