JavaMail java邮件开发_Tomcat的JavaMail_JNDI资源与类加载问题

 

 

 

JNDI:https://baike.baidu.com/item/JNDI 

在META-INF下创建context.xml文件:

 

<Context>
	<Resource name="mail/session" auth="Container" type="javax.mail.Session"
	mail.stmp.host="smtp.sina.com" mail.stmp.auth="true" mail.transport.protocol="stmp"/>
	
		
</Context>

 

SendMailServlet:

package com.yuming.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.naming.Context;
import javax.naming.InitialContext;

import com.yuming.test.JavaMail02;

/**
 * Servlet implementation class SendMailServlet
 */
public class SendMailServlet extends HttpServlet {
	

    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	  try {
		//JavaMail02.main(new String[]{});
		  //获得session对象
		  Context initCtx = new InitialContext();
			Context envCtx = (Context) initCtx.lookup("java:comp/env");
			Session session = (Session) envCtx.lookup("mail/session");

			Message message = new MimeMessage(session);
			
			//收件人
			//message.setFrom(new InternetAddress(request.getParameter("from"));		
			message.setFrom(new InternetAddress("itcast_test@sina.com"));
			InternetAddress to[] = new InternetAddress[1];
			
			//收件人
			//to[0] = new InternetAddress(request.getPaeameter("to")); 	
			to[0] = new InternetAddress("itcast_test@sina.com"); 
			
			message.setRecipients(Message.RecipientType.TO, to);
			
			//主题
			//message.setSubject(request.getParameter("subject"));
			message.setSubject("haha");
			
			//内容  是一段文本
			//message.setContent(request.getParameter("content"),"text/plain");
			message.setText("test");
			
			//Transport.send(message);
			
			//用户名  密码
			Transport transport = session.getTransport();
			//transport.connect(host, username, password);
			transport.connect("smtp.sina.com", "itcast_test", "123456");
			
			//发邮件
			transport.sendMessage(message, to);
			
			transport.close();
		response.getWriter().print("ok!!!");
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace(response.getWriter());
	}
		
		
	}

}

需要去掉mail.jar,否则,会报错.session 找不到 session

报错信息:

原因:有两个session,一个是servlet中的session(servlet类加载器加载的session),一个是tomcat的session(tomcat类加载器加载的session.lib下的mail.jar)

但是,我去掉lib下的mail.jar,导包的地方报错,,,求指点............

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值