在jsp中,用JAVAMAIL API发送邮件问题,请大家帮忙

bigzhou 2004-03-23 11:38:48
我用JBUILDER9,TOMCAT5环境,作了一个HTML文件和JSP文件,JSP文件从HTML文件处得到邮件目的地址和内容等并负责发送。JSP文件代码如下:
<%@ page contentType="text/html;charset=gb2312" %>
<%request.setCharacterEncoding("gb2312");%>
<%@ page import="java.util.*,javax.mail.*,java.net.*,java.net.InetAddress"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发送成功</title>
</head>

<body>
<%
try{

String tto=request.getParameter("to");
String ttitle=request.getParameter("title");
String tcontent=request.getParameter("content");
Properties props=new Properties();
props.put("mail.smtp.host","smtp.163.com");
props.put("mail.smtp.auth","true");
Session s=Session.getInstance(props);
s.setDebug(true);

MimeMessage message=new MimeMessage(s);

//给消息对象设置发件人/收件人/主题/发信时间
InternetAddress from=new InternetAddress("xxxx@163.com");
message.setFrom(from);
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO,to);
message.setSubject(ttitle);
message.setSentDate(new Date());


//给消息对象设置内容
BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象
mdp.setContent(tcontent,"text/html;charset=gb2312");//给BodyPart对象设置内容和格式/编码方式
Multipart mm=new MimeMultipart();//新建一个MimeMultipart对象用来存放BodyPart对
//象(事实上可以存放多个)
mm.addBodyPart(mdp);//将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
message.setContent(mm);//把mm作为消息对象的内容

message.saveChanges();
Transport transport=s.getTransport("smtp");
transport.connect("xxxx@163.com","xxx","xxx");
transport.sendMessage(message,message.getAllRecipients());
transport.close();
%>
<div align="center">
<p><font color="#FF6600">发送成功!</font></p>

<br>
<a href="face.htm">再发一封</a> </p>
</div>
<%
}catch(MessagingException e){
out.println(e.toString());
}
%>
</body>
</html>

编译可以通过,但运行时网页提示错误:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 13 in the jsp file: /mail_jsp/mail_jspprj/sendmail.jsp

Generated servlet error:
[javac] Compiling 1 source file

C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\mail_005fjsp\mail_005fjspprj\sendmail_jsp.java:7: package javax.mail does not exist
import javax.mail.*;
^
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\mail_005fjsp\mail_005fjspprj\sendmail_jsp.java:10: package javax.mail.internet does not exist
import javax.mail.internet.*;
^
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\mail_005fjsp\mail_005fjspprj\sendmail_jsp.java:11: package javax.activation does not exist
import javax.activation.*;
^
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\mail_005fjsp\mail_005fjspprj\sendmail_jsp.java:72: cannot resolve symbol
symbol : class Session


..........
我不知道哪里出了问题
...全文
69 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
liusoft 2004-03-23
http://www.javayou.com/dlog/showlog.asp?log_id=555
这里有我封装得一个邮件发送组件,包括源码!
  • 打赏
  • 举报
回复
CoolAbu 2004-03-23
你看看你机子上有没有mail.jar,activation.jar,如果有把它们Copy到Tomcat中你的WebAPp的WEB-INF/lib文件夹下。

或者把它们加到Jbuilder的Libraries中,然后在你的这个工程中引用它。
  • 打赏
  • 举报
回复
WAPQQ 2004-03-23
activation.jar要设在环境变量
  • 打赏
  • 举报
回复
WAPQQ 2004-03-23
mail.jar要设在环境变量你
  • 打赏
  • 举报
回复
bigzhou 2004-03-23
mail.jar,activation.jar,mailapi.jar等文件在我的C:\JBuilder9\jdk1.4\lib\ext下面和
C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\ROOT\mail_jsp\mail_jspprj\WEB-INF\lib下面都有。在JBuilder9开发环境中congfigure libraries中也设置了,我做的WINAPP程序用以上代码发邮件没问题。是不是SERVER.XML和web.xml需要设置,如上面那位老兄说的,我对JAVA的B/S环境不太熟。但我有1年VB的开发经验,4年的DELPHI开发经验和2年的VC开发经验,C/S模式非常熟悉。java的代码也熟悉,就是J2EE的结构体系令我找不着北
  • 打赏
  • 举报
回复
shangqiao 2004-03-23
怎么好多人都是连Java的基本原理都还没有清楚,就要写J2EE的程序呢!还是一步一步来呀!楼主还是看看基础吧,我使在也不想看见因为是ClassNotFoundException等等问题而浪费分数了!
  • 打赏
  • 举报
回复
相关推荐
发帖
Java EE
创建于2007-09-28

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2004-03-23 11:38
社区公告
暂无公告