JavaMail类:
package com.gwl.javamail;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.sun.mail.iap.Response;
public class JavaMail
{
private String host; //邮件服务器地址
private int port; //端口号
private String username; //邮箱名称
private String password; //邮箱密码
private String contentType;//内容类型
//默认构造函数
public JavaMail(){
}
/**
* 初始化服务器信息
* @param host
* @param port
* @param usermame
* @param password
*/
public JavaMail(String host,int port,String username,String password,String contentType){
this.host=host.trim();
this.port=port;
this.username=username.trim();
this.password=password.trim();
this.contentType=contentType.trim();
}
/**
* 获得的一个Sessions对象
* @param sign true:调试 false:不调试
* @return
* @throws NamingException
*/
private Session getSession(boolean sign) throws NamingException{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
Session session = (Session)envCtx.lookup("mail/Dog");
session.setDebug(sign);
return session;
}
/**
* 发送邮件
* @param title 邮件标题
* @param content 内容
* @param from 发送者
* @param to 接收者
* @param sign true:调试 false:不调试
* @throws NamingException JNDI异常
* @throws AddressException 邮件地址异常
* @throws UnsupportedEncodingException MimeUtils工具异常
* @throws MessagingException
*/
public void sendMail(String title,String content,Map<String,String> from,Map<String,String> to,Map<String,String> reply,RecipientType rt,boolean sign,boolean rsign) throws NamingException, AddressException, MessagingException, UnsupportedEncodingException{
Session session=getSession(sign);
StringBuffer sb=new StringBuffer();
for (String it :to.keySet()) {
String item=MimeUtility.encodeText(it.trim())+"<"+to.get(it.trim())+">";
sb.append(item+",");
}
sb.substring(0,sb.length()-1);
Message message = new MimeMessage(session);
String hh=from.keySet().iterator().next().trim();
message.setFrom(new InternetAddress(MimeUtility.encodeText(hh)+"<"+from.get(hh)+">"));
message.setSubject(title.trim());
message.setContent(content.trim(),contentType);
message.setSentDate(new Date());
message.setRecipients(rt, InternetAddress.parse(sb.toString()));
if(rsign){
if(reply!=null)
message.setReplyTo(InternetAddress.parse(reply.values().iterator().next().trim()));
else
message.setReplyTo(InternetAddress.parse(from.get(hh)));
}
Transport transport=session.getTransport();
transport.connect(host,port,username,password);
transport.sendMessage(message,InternetAddress.parse(sb.toString()));
transport.close();
}
}
mail.java servlet调用类:
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.ResourceBundle;
import javax.mail.MessagingException;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.omg.CORBA.Request;
import com.gwl.javamail.JavaMail;
public class mail extends HttpServlet
{
/**
* Constructor of the object.
*/
public mail()
{
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy()
{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try {
this.doPost(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws IOException
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException
{
PrintWriter out = response.getWriter();
out.print(request.getAttribute("gwl1").toString()+" "+request.getAttribute("gwl2").toString());
JavaMail jm=new JavaMail("smtp.163.com",25,"123","123","text/html;charset=gbk");
HashMap from=new HashMap<String,String>();
from.put("郭德纲", "123@163.com");
HashMap to=new HashMap<String,String>();
to.put("启智网络",request.getAttribute("gwl1").toString());
to.put("测试",request.getAttribute("gwl2").toString());
HashMap reply=new HashMap<String,String>();
reply.put("回复地址",123@qq.com);
try {
ResourceBundle rb=ResourceBundle.getBundle("mail");
MessageFormat mf=new MessageFormat("");
mf.applyPattern(rb.getString("message"));
String ms=mf.format(new Object[]{"郭德纲","TY002-1","中国的明天","郭德纲","029-5544573"});
jm.sendMail("欢迎投稿",ms,from,to,reply,RecipientType.TO,true,true);
} catch (AddressException e) {
System.out.print(e.getMessage());
} catch (UnsupportedEncodingException e) {
System.out.print(e.getMessage());
} catch (NamingException e) {
System.out.print(e.getMessage());
} catch (MessagingException e) {
System.out.print(e.getMessage());
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException
{
}
}
Session tomcat配置文件:
context.xml:
<Context>
<Resource name="mail/Dog" auth="Container"
type="javax.mail.Session"
mail.smtp.host="smtp.163.com"
mail.transport.protocol="smtp"
mail.smtp.auth="true"
/>
</Context>
mail.properties邮件模板
<meta/ http-equiv = "Content-Type" content="text/html; charset=gbk" />
Email(s) = ganplane@gmail.com, ,<br />
message = <html>/r/n<head>/r/n<meta http-equiv="Content-Type" content="text/html; charset=gbk" />/r/n<title></title>/r/n</head>/r/n<body>/r/n<p>{0}/u60A8/u597D!<br />/r/n /u60A8/u5411/u4E2D/u56FD/u7535/u5DE5/u6280/u672F/u5B66/u4F1A/u7535/u529B/u7535/u5B50/u5B66/u4F1A/u7B2C/u5341/u4E00/u5C4A/u5B66/u672F/u5E74/u4F1A/u6295/u7A3F/u6210/u529F/uFF01.<br />/r/n /u60A8/u6295/u7A3F/u6587/u7AE0/u7684/u7F16/u53F7/u4E3A/uFF1A [{1}]. /u8BF7/u60A8/u7262/u8BB0/u8FD9/u4E2A/u7F16/u53F7/uFF0C/u5728/u4EE5/u540E/u7684/u8054/u7CFB/u4E2D/uFF0C/u6211/u4EEC/u5C06/u4F7F/u7528/u8FD9/u4E2A/u6587/u7AE0/u7F16/u53F7/u3002<br />/r/n /u6240/u6709/u6295/u7A3F/u8BBA/u6587/u90FD/u5C06/u7531/u6709/u5173/u4E13/u5BB6/u8FDB/u884C/u8BC4/u5BA1/u3002/u8BF7/u60A8/u6CE8/u610F/uFF0C/u8BBA/u6587/u5F55/u7528/u901A/u77E5/u53CA/u6B63/u5F0F/u8BBA/u6587/u683C/u5F0F/u8981/u6C42/u90FD/u5C06/u4E8E2008/u5E748/u670815/u65E5/u53D1/u51FA/uFF0C/u800C/u8BBA/u6587/u6B63/u5F0F/u7A3F/u63D0/u4EA4/u7684/u622A/u6B62/u65E5/u671F/u4E3A2008/u5E749/u670830/u65E5/u3002</p>/r/n<p>/u60A8/u6295/u7A3F/u6587/u7AE0/u7684/u4FE1/u606F/u5982/u4E0B/uFF1A<br />/r/n /u9898/u76EE: {2} <br />/r/n /u4F5C/u8005/uFF1A{3} <br />/r/n /u8054/u7CFB/u65B9/u5F0F/uFF1A{4} <br />/r/n Email(s): ganplane@gmail.com, ,<br />/r/n /u6587/u7AE0/u5206/u7C7B /uFF1A1) /u5404/u79CD/u65B0/u578B/u7535/u529B/u534A/u5BFC/u4F53/u5668/u4EF6(/u542B/u5404/u7C7B/u6A21/u5757)/u7684/u8BBE/u8BA1/u3001/u5DE5/u827A/u3001/u7279/u6027/u5206/u6790/u3001/u6D4B/u8BD5/u3001/u53EF/u9760/u6027/u7B49/u6280/u672F<br />/r/n /u5173/u4E8E/u5E74/u4F1A/u7684/u6700/u65B0/u6D88/u606F/u8BF7/u5173/u6CE8: www.pe2008.xjtu.edu.cn or pe2008.pes.org.cn<br />/r/n /u5982/u6709/u95EE/u9898/u8BF7/u8054/u7CFB/uFF1A cpes_ac@mail.xjtu.edu.</p>/r/n</body>/r/n</html>
u5173u4E8Eu5E74u4F1Au7684u6700u65B0u6D88u606Fu8BF7u5173u6CE8 = www.pe2008.xjtu.edu.cn or pe2008.pes.org.cn<br />
u9898u76EE = {2} <br />