各位高手帮帮忙!请教关于JAVAMAIL的问题(急!在线等)

317814 2004-09-01 11:44:39
我想写一个自动发邮件的程序,环境变量也加上了!可到最后发送的时候还是出现异常!请问是什么原因!代码如下:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*"%>
<%@page import="javax.mail.*"%>
<%@page import="javax.mail.internet.*"%>
<%@page import="javax.activation.*"%>
<html>
<head>
<title>sendmail.jsp</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<%
//邮件服务器的IP地址,注意此时使用的是SMTP 邮件服务器
//String host="202.102.240.76";
//获取用户信息
String to=request.getParameter("to");
String from=request.getParameter("from");
String cc=request.getParameter("cc");
String bcc=request.getParameter("bcc");
//结合本程序的第一句,共同起显示汉字体的功能
String subject=request.getParameter("subject");
subject = new java.lang.String(subject.getBytes("iso-8859-1"));
//以上方法等同于以下两句,原理相同
//byte[] subjectTemp=request.getParameter("subject").getBytes("ISO8859_1");
//String subject=new String(subjectTemp);
byte[] messageTextTemp=request.getParameter("body").getBytes("ISO8859_1");
String messageText= new String(messageTextTemp);
boolean sessionDebug = false;
//验证所填写的邮件是否正确
if((to.trim().indexOf("@")==-1)||(to.trim().length()<5)){
%>

<%
}
if((from.trim().indexOf("@")==-1)||(from.trim().length()<5)){
%>

<%
}
//获得系统属性对象,用下两句的任一句均可
//Properties props = System.getProperties();
Properties props=new Properties();
//设置SMTP主机
//以下一句是对任意的SMTP 邮件服务器均可,并且有了这一句,将不用设置传输协议了
props.put("mail.smtp.host", "mail.donews.com");
//这样将确定接收方的邮件服务器主机,
//props.put("mail.host",host);
//设置邮件传输协议方式
//props.put("mail.transport.protocol","smtp");
//获取邮件会话对象
Session mailSession = Session.getDefaultInstance(props,null);
mailSession.setDebug(sessionDebug);
try{
//创建MIME邮件对象
Message msg = new MimeMessage(mailSession);
//设置发信人
msg.setFrom(new InternetAddress(from));
//设置收信人
InternetAddress[] addressTo = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO,addressTo);
//设置抄送人
if(cc.trim().length()!=0){
InternetAddress[] addressCc = {new InternetAddress(cc)};
msg.setRecipients(Message.RecipientType.CC,addressCc);
}
//设置暗送人
if(bcc.trim().length()!=0){
InternetAddress[] addressBcc = {new InternetAddress(bcc)};
msg.setRecipients(Message.RecipientType.BCC,addressBcc);
}
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(messageText);

//发送邮件
Transport.send(msg);
}
catch(Exception ex){
out.println("sending failed!"+ex.getMessage());
}
%>
</body>
</html>
...全文
131 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
quntian 2004-10-19
  • 打赏
  • 举报
回复
javax.mail.NoSuchProviderException: No provider for smtp 与JavaMail自带的配置文件javamail.default.providers有关,目录 mail.jar/MET-INF/。
jein 2004-09-07
  • 打赏
  • 举报
回复
好象是没有加载SMTP类
sxl6159078 2004-09-07
  • 打赏
  • 举报
回复
smtp 是不是没有加载smtp.jar
yongliu 2004-09-07
  • 打赏
  • 举报
回复
是smtp服务器登陆时没有验证
flyxxxxx 2004-09-01
  • 打赏
  • 举报
回复
参考http://blog.csdn.net/flyxxxxx/archive/2004/08/14/74493.aspx
317814 2004-09-01
  • 打赏
  • 举报
回复
出现的异常是:javax.mail.NoSuchProviderException: No provider for smtp
是不是我配置的有问题!
antingluo 2004-09-01
  • 打赏
  • 举报
回复
学习
zhushizu 2004-09-01
  • 打赏
  • 举报
回复
是呀,我也是想了好久。。关注中。。。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧