首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

100分邮件有关问题

2012-03-09 
100分邮件问题我用的是myeclipse5.1+eclipse3.2+tomcat首先新建一web工程然后建立一个包bean再建类MailInf

100分邮件问题
我用的是myeclipse5.1+eclipse3.2+tomcat    
首先新建一web工程    
然后建立一个包bean     再建类MailInfo如下:  
(包都放对位置的)  
package   bean;
import   java.util.*;
import   javax.activation.*;
import   javax.mail.*;
import   javax.mail.internet.*;
public   class   MailInfo   {
String   to   =   " ";//收件人
String   from   =   " ";//发件人
String   host   =   " ";//smtp主机
String   username   =   " "   ;
String   password   =   " "   ;
String   filename   =   " ";//附件文件名
String   subject   =   " ";//邮件主题
String   content   =   " ";//邮件正文
Vector   file   =   new   Vector();//附件文件集合
/**
  * <br> 方法说明:默认构造器
  * <br> 输入参数:
  * <br> 返回类型:
  */
public   MailInfo(){
}
/**
  * <br> 方法说明:构造器,提供直接的参数传入
  * <br> 输入参数:
  * <br> 返回类型:
  */
public   MailInfo(String   to,String   from,String   smtpServer,String   username,String   password,String   subject,String   content){
    this.to   =   to;
    this.from   =   from;
    this.host   =   smtpServer;
    this.username   =   username;
    this.password   =   password;
    this.subject   =   subject;
    this.content   =   content;
}
/**
  * <br> 方法说明:设置邮件服务器地址
  * <br> 输入参数:String   host   邮件服务器地址名称
  * <br> 返回类型:
  */
public   void   setHost(String   host){
    this.host   =   host;
}
/**
  * <br> 方法说明:设置登录服务器校验密码
  * <br> 输入参数:
  * <br> 返回类型:
  */
public   void   setPassWord(String   pwd){
    this.password   =   pwd;
}
/**
  * <br> 方法说明:设置登录服务器校验用户
  * <br> 输入参数:
  * <br> 返回类型:
  */
public   void   setUserName(String   usn){
    this.username   =   usn;
}
/**
  * <br> 方法说明:设置邮件发送目的邮箱
  * <br> 输入参数:
  * <br> 返回类型:
  */
public   void   setTo(String   to){
    this.to   =   to;
}
/**
  * <br> 方法说明:设置邮件发送源邮箱
  * <br> 输入参数:
  * <br> 返回类型:
  */
public   void   setFrom(String   from){
    this.from   =   from;
}
/**
  * <br> 方法说明:设置邮件主题
  * <br> 输入参数:
  * <br> 返回类型:
  */
public   void   setSubject(String   subject){
    this.subject   =   subject;
}
/**
  * <br> 方法说明:设置邮件内容
  * <br> 输入参数:
  * <br> 返回类型:
  */
public   void   setContent(String   content){
    this.content   =   content;
}
/**
  * <br> 方法说明:把主题转换为中文
  * <br> 输入参数:String   strText  
  * <br> 返回类型:


  */
public   String   transferChinese(String   strText){
    try{
        strText   =   MimeUtility.encodeText(new   String(strText.getBytes(),   "GB2312 "),   "GB2312 ",   "B ");
    }catch(Exception   e){
        e.printStackTrace();
    }
    return   strText;
}
/**
  * <br> 方法说明:往附件组合中添加附件
  * <br> 输入参数:
  * <br> 返回类型:
  */
public   void   attachfile(String   fname){
    file.addElement(fname);
}
/**
  * <br> 方法说明:发送邮件
  * <br> 输入参数:
  * <br> 返回类型:boolean   成功为true,反之为false
  */
public   boolean   sendMail(){

    //构造mail   session
    Properties   props   =   System.getProperties();
    props.put( "mail.smtp.host ",host);
    props.put( "mail.smtp.auth ", "true ");
    Session   session=Session.getDefaultInstance(props,   new   Authenticator(){
      public   PasswordAuthentication   getPasswordAuthentication(){
        return   new   PasswordAuthentication(username,password);  
      }
    });
   
    try   {
        //构造MimeMessage   并设定基本的值
        MimeMessage   msg   =   new   MimeMessage(session);
        msg.setFrom(new   InternetAddress(from));
        InternetAddress[]   address={new   InternetAddress(to)};
        msg.setRecipients(Message.RecipientType.TO,address);
        subject   =   transferChinese(subject);
        msg.setSubject(subject);
       
        //构造Multipart
        Multipart   mp   =   new   MimeMultipart();
       
        //向Multipart添加正文
        MimeBodyPart   mbpContent   =   new   MimeBodyPart();
        mbpContent.setText(content);
        //向MimeMessage添加(Multipart代表正文)
        mp.addBodyPart(mbpContent);
       
        //向Multipart添加附件
        Enumeration   efile=file.elements();
        while(efile.hasMoreElements()){
       
            MimeBodyPart   mbpFile   =   new   MimeBodyPart();
            filename=efile.nextElement().toString();
            FileDataSource   fds   =   new   FileDataSource(filename);
            mbpFile.setDataHandler(new   DataHandler(fds));
            mbpFile.setFileName(fds.getName());
            //向MimeMessage添加(Multipart代表附件)
            mp.addBodyPart(mbpFile);

        }
       


        file.removeAllElements();
        //向Multipart添加MimeMessage
        msg.setContent(mp);
        msg.setSentDate(new   Date());
        //发送邮件
        Transport.send(msg);
   
    }   catch   (MessagingException   mex)   {
        mex.printStackTrace();
        Exception   ex   =   null;
        if   ((ex=mex.getNextException())!=null){
            ex.printStackTrace();
        }
        return   false;
    }
    return   true;
  }
}
------------------------------------------------------  
jsp页面为:    
  <%@   page   language= "java "   contentType= "text/html;   charset=ISO-8859-1 "
        pageEncoding= "ISO-8859-1 "%>
<!DOCTYPE   html   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN "   "http://www.w3.org/TR/html4/loose.dtd ">
<html>
<head>
<meta   http-equiv= "Content-Type "   content= "text/html;   charset=ISO-8859-1 ">
<title> Insert   title   here </title>
</head>
<body>
<form   action= "servlet/test "   method= "post ">
<table   align= "center ">
<tr>
<td> To: <br>
<input   type= "text "   name= "to "   size=25> </td>
<td> From: <br>
<input   type= "text "   name= "from "   size=25> </td>
</tr>
<tr>
<td   colspan= "2 ">
Subject: <br>
<input   type= "text "   name= "subject "   size=50>
</td>
</tr>
<tr>
<td   colspan= "2 ">
<p> Message: <br>
<textarea   name= "text "   rows=25   cols=85> </textarea> </p>
</td>
</tr>
<tr>
<td   colspan= "2 ">
<input   type= "submit "   value= "send "> <input   type= "reset "   value= "clear ">
</td>
</tr>
</table>
</form>
</body>
</html>
-------------------------------------------------------    


[解决办法]
javamail的包放到common/lib 下或者放到你项目中的WEB-INF下的lib下
[解决办法]
在JRE SYSTEM LIBRARY上右击,查看你的所有包的路径都对不,一般都是这样的问题。
最好就是把用到的包在WEB-INFO/lib下放置

热点排行