需要一个jar包 activation.jar这个包在TOMCAT的环境中有的,加到项目的类路径就可以了!

解决方案 »

  1.   

    现在第一个问题,第二个问题解决了!现在还有就是第三个问题!为什么我打包后的程序不能正常发送邮件呢,在jbuilder9环境里就没有问题的,这个问题怎么解决了,我在打包时打mail.jar,activation.jar都加进来了,但是打包后的.exe文件就是不能发邮件!
    多谢各位,帮帮我了!
      

  2.   

    又有新发现了
    打包后的.exe文件能运行,但是用它发的邮件不能收到,就是发送没有成功,但是可以运行起来!但是.jar文件提示没有找到主类文件,程序退出,就是不能正常运行.jar文件,但是在打包时我设了主类,选自动主类一样不好使,.jar文件就是运行不起来!
      

  3.   

    你打包的时候是用Jbuilder的打包向导么?你打包的时候所有的Library都是选的 Always include all classes and resources么?如果不是你把所有的Library都选成它打包试试。我以前打包一个程序时也出现过这种问题,我想把包打小一点,所以选了required,但是打出来不能运行,后来选择all,就可以运行了。
      

  4.   

    我选的就是Always include all classes and resources了!
      

  5.   

    package listingwapjf;import java.io.*;
    import java.net.InetAddress;
    import java.util.Properties;
    import java.util.Date;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.mail.internet.MimePart.*;
    import javax.activation.DataContentHandler;
    import javax.activation.CommandMap;
    import javax.activation.DataHandler;public class sendmail extends Thread {
      private Message mimeMsg; //MIME郵件物件
      private Session session; //郵件會話物件
      private Properties props; //系统属性
      private boolean needAuth=true; //smtp是否需要認證
      private String username="[email protected]"; //smtp用户名
      private String password="1234";//smtp密码
      private String hostName="mail.banruo.net";
      private Multipart mp; //Multipart物件,郵件內容,標題,附件等內容均添加到其中後再生成MimeMessage物件
      private String mailSubject="";//主题
      private String mailBody;//内容
      private String tomailaddress_TO="";//发送给
      private String tomailaddress_CC="";//发送给
      private String frommailaddress="[email protected]";//发送者
      public sendmail(String mailSubject_tmp,String mailBody_tmp) {
        mailSubject=mailSubject_tmp;
        mailBody=mailBody_tmp;
        props=System.getProperties();
        props.put("mail.smtp.host",hostName); //设置SMTP主机地址
        if(needAuth)
        {
          props.put("mail.smtp.auth","true");
        }
        else
        {
          props.put("mail.smtp.auth","false");
        }
      }
      public synchronized void run() {
           if(public_var.emaillist.size()==0)
           {//没有邮件地址
             return;
           }
           for(int i=0;i<public_var.emaillist.size();i++)
           {
              if(i==0)
              {
                tomailaddress_TO=(String)public_var.emaillist.get(i);//主邮件地址
              }
              else
              {
                if(i+1==public_var.emaillist.size())
                {
                  tomailaddress_CC=tomailaddress_CC+(String)public_var.emaillist.get(i);//主邮件地址
                }
                else
                {
                  tomailaddress_CC=tomailaddress_CC+(String)public_var.emaillist.get(i)+",";//主邮件地址
                }
              }
           }
          //---------------//创建MIME邮件 begin
          try{
             session = Session.getDefaultInstance(props,null);
             session.setDebug(true);
          }
          catch(Exception e){
            System.err.println("zhengqiang0");
            System.out.println(e.getMessage());
            return;
          }
          try{
             mimeMsg = new MimeMessage(session);
             mp = new MimeMultipart();
          }
          catch(Exception e){
            System.err.println("zhengqiang1");
            System.out.println(e.getMessage());
            return;
          }
          //---------------//创建MIME邮件 end
          //---------------设置邮件主题 begin
          try{
          mimeMsg.setSubject(mailSubject);
          }
          catch(Exception e) {
            System.err.println("zhengqiang2");
            System.out.println(e.getMessage());
            return;
          }
          //---------------设置邮件主题 end
          //----------------设置邮件正文 begin
          try{
           //BodyPart bp = new MimeBodyPart();
          //bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=GB2312>"+mailBody,"text/html; charset=GB2312");
          //bp.setContent(mailBody,"text/html; charset=gb2312");
          //mp.addBodyPart(bp);
           //----------
            CommandMap cmp=CommandMap.getDefaultCommandMap();
            DataContentHandler DCH = cmp.createDataContentHandler("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");//contenttype="text/palin",,"multipart/*"...
            if(DCH==null)
            {
             // throw new UnSupprotedDataTypeException("no object DCH for MIME type"+contenttype);
             System.out.println("zhengqiang");
            }
            //----------
           mimeMsg.addHeader("Content-Type","text/html");
           //mimeMsg.
           String htmlText="<H1>Hello</H1>"+"<img src=\"http://www.jguru.com/images/logo.gif\">";
           mimeMsg.setContent(htmlText,"text/html");
    //       mimeMsg.setDataHandler(new DataHandler(javax.mail.Header.g,"text/plain"));
          }
          catch(Exception e){
            System.err.println("zhengqiang3");
            System.out.println(e.getMessage());
            return;
          }
          //----------------设置邮件正文 end
          //----------------设置发送日期 begin
           try{
                mimeMsg.setSentDate(new Date());
              }
              catch(Exception e)
              {
                System.err.println("zhengqiang4");
                System.out.println(e.getMessage());
                return;
              }
          //----------------设置发送日期 end
          //----------------设置发送给谁 begin
          try{
          mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(tomailaddress_TO));
          mimeMsg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(tomailaddress_CC));
          }
          catch(Exception e)
          {
            System.err.println("zhengqiang5");
            System.out.println(e.getMessage());
            return;
          }
          //----------------设置发送给谁 end
          //----------------设置发送者 begin
            try{
            mimeMsg.setFrom(new InternetAddress(frommailaddress));
            }
            catch(Exception e)
            {
             System.err.println("zhengqiang6");
             return;
            }
           //----------------设置发送者 end
           //----------------开始发送 begin
            try{
            System.out.println("tttttttttttttttt0");
    //        mimeMsg.setContent(mp);
            System.out.println("tttttttttttttttt1");
    //        mimeMsg.saveChanges();
            System.out.println("tttttttttttttttt2");
            Session mailSession = Session.getInstance(props,null);
            System.out.println("tttttttttttttttt3");
            Transport transport = mailSession.getTransport("smtp");
            System.out.println("tttttttttttttttt4");
            transport.connect((String)props.get("mail.smtp.host"),username,password);
             System.out.println("tttttttttttttttt5");
            //transport.send(mimeMsg);
            transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
              System.out.println("tttttttttttttttt6");
            //transport.send(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC));
            //transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC));
              System.out.println("tttttttttttttttt7");
            transport.close();
            }
            catch(Exception e)
            {
              System.err.println("zhengqiang7");
              System.err.println(e.getMessage());
              return;
            }
           //----------------开始发送 end
          return;
        //-----------
      }
    }说明:
    transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
    这句话就出错了!
    以上是java application的程序
      

  6.   

    我的问题与这个问题比较像,但是我没有看懂它的解决方法!
    http://search.csdn.net/expert/topic/54/5404/2003/11/27/2500375.xml
      

  7.   

    lostyq(遗忘星空) 没有打包时我一样可以发送,但是打包后就不行了!
      

  8.   

    各位你们在jbuilder中打包一样就可以知道这个问题很辣手!
      

  9.   

    把你的public_var类也写出来。我来试试。
      

  10.   

    public_var类 中只是几个vector的变量,你在用到public_var类的地方用字符串不就行了吗?这个问题与public_var类没有关系!
      

  11.   

    经过偶多方测试,终于找到解决方法  :)在sendmail.exe的同级文件夹下建一目录META-INF,在这个目录里再新建一个问叫mailcap,mailcap内容如下#
    # @(#)mailcap 1.6 02/05/23
    #
    # Default mailcap file for the JavaMail System.
    #
    # JavaMail content-handlers:
    #
    text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain
    text/html;; x-java-content-handler=com.sun.mail.handlers.text_html
    text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml
    image/gif;; x-java-content-handler=com.sun.mail.handlers.image_gif
    image/jpeg;; x-java-content-handler=com.sun.mail.handlers.image_jpeg
    multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed
    message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822
      

  12.   

    CoolAbu您好,不错,我试过了可以发了!真的谢谢您还有一些热心的朋友,还有 strongsoft谢谢您帮我推了这些次!其实问题是解决了,CoolAbu我不知道你发现没有,如果你打包时选择头两个包含class的选项时是不好用的,就是加上META-INF,如果选择后两项那个都行要加上META-INF就可以发了!
    但是你发现没有在打包的时候在包体中已经存在mapcap文件了,我就不解的是这个为什么它的包体里有这个文件它还要读外面的!
    但是jbuilder中的项目里没有创建META-INF目录下的mapcap的文件时它一样可以正常发送,我就不明白jbuilder中那里的配置是与我打包后的配置不一样。这个问题是不是真的很怪!我认为还是打包的时候出现的问题!你有没有发现在jbuilder里运行程序的时候,在信息栏里都有一行这个环境!来起动程序的,是不是这行环境的配置有说头,所以这两天我都在试不同的打包方法,可能以后写程序还是会有这样的问题,我就想把这个问题做通,我正在研究为什么会这样,我打过很多程序包第一次有过这样的问题,真是不解决我闹心!呵呵,CoolAbu别急我一定会推你上★★★★的!希望CSDN的朋友共同进步!D:\JBuilder9\jdk1.4\bin\javaw -classpath "E:\listingwapjf\classes;D:\JBuilder9\lib\mail.jar;D:\JBuilder9\lib\activation.jar;D:\JBuilder9\jdk1.4\demo\jfc\Java2D\Java2Demo.jar;D:\JBuilder9\jdk1.4\demo\plugin\jfc\Java2D\Java2Demo.jar;D:\JBuilder9\jdk1.4\jre\lib\charsets.jar;D:\JBuilder9\jdk1.4\jre\lib\ext\dnsns.jar;D:\JBuilder9\jdk1.4\jre\lib\ext\ldapsec.jar;D:\JBuilder9\jdk1.4\jre\lib\ext\localedata.jar;D:\JBuilder9\jdk1.4\jre\lib\ext\sunjce_provider.jar;D:\JBuilder9\jdk1.4\jre\lib\im\indicim.jar;D:\JBuilder9\jdk1.4\jre\lib\jaws.jar;D:\JBuilder9\jdk1.4\jre\lib\jce.jar;D:\JBuilder9\jdk1.4\jre\lib\jsse.jar;D:\JBuilder9\jdk1.4\jre\lib\rt.jar;D:\JBuilder9\jdk1.4\jre\lib\sunrsasign.jar;D:\JBuilder9\jdk1.4\lib\dt.jar;D:\JBuilder9\jdk1.4\lib\htmlconverter.jar;D:\JBuilder9\jdk1.4\lib\tools.jar"  listingwapjf.mainform