当前页面: 开发资料首页 → JSP 专题 → javamail 发邮件出现错误,帮我看看,谢谢了!~~
javamail 发邮件出现错误,帮我看看,谢谢了!~~
摘要: javamail 发邮件出现错误,帮我看看,谢谢了!~~
1、我下载了sun的javamail,并将mail.jar 复制到了lib目录下,重启动了服务器。
2、我直接在jsp里发邮件,代码如下
<%@page contentType="text/html;charset=utf-8"%>
<%@ page import="javax.mail.*, javax.mail.internet.*,java.util.*"%>
<head>
JavaMail 电子邮件发送</head>
<body>
<%
Properties props = new Properties();
Session sendMailSession;
Transport transport;
sendMailSession = Session.getInstance(props,null);
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress("test@test.com"));
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("wxg_bj@yahoo.com.cn"));
newMessage.setSubject("subject");
newMessage.setSentDate(new Date());
newMessage.setText("text");
props.put("mail.smtp.host","smtp.126.com");//存储发送邮件服务器的信息
props.put("mail.smtp.auth","true");//同时通过验证
transport = sendMailSession.getTransport("smtp");
transport.send(newMessage);
%>
</body>
3、提示错误如下:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /mail.jsp:14
11: Transport transport;
12: sendMailSession = Session.getInstance(props,null);
13:
14: Message newMessage = new MimeMessage(sendMailSession);
15: newMessage.setFrom(new InternetAddress("test@test.com"));
16: newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("wxg_bj@yahoo.com.cn"));
17: newMessage.setSubject("subject");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
javax.servlet.ServletException: javax/activation/DataSource
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.mail_jsp._jspService(mail_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NoClassDefFoundError: javax/activation/DataSource
org.apache.jsp.mail_jsp._jspService(mail_jsp.java:58)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
你没有JavaBeans Activation Framework
到sun的站点去下载。
将 activation.jar 文件添加到 CLASSPATH
谢谢,确实和这个有关系。 我下再了activation.jar 放到了lib里,并在jsp里import
已经解决部分错误。但我发邮件还是有问题。
问题出在最后一行
transport.send(newMessage);
发送的时候。
是不是126.com需要smtp的用户验证,该怎么写呢?
已经搞定,谢谢
具体在我blog上
warran.blueidea.com