你们没有使用javamail吗?
既然是发送html类型为正文内容的文件,为什么不直接用MIME里面的mutilpart类型,对html直接进行quote-printable或base64编码.

解决方案 »

  1.   

    我们是要把html页面当作正文内容,但是Html里面的图片都是链接,如果不处理这些链接图片发出去后客户是看不到的啊
      

  2.   

    // Get a Session object
          Session session = Session.getDefaultInstance(props, null);
          if (debug)
            session.setDebug(true);      // construct the message
          Message msg = new MimeMessage(session);
          if (from != null)
            msg.setFrom(new InternetAddress(from));
          else
            msg.setFrom();      msg.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse(to, false));
          if (cc != null)
            msg.setRecipients(Message.RecipientType.CC,
              InternetAddress.parse(cc, false));
          if (bcc != null)
            msg.setRecipients(Message.RecipientType.BCC,
              InternetAddress.parse(bcc, false));      msg.setSubject(subject);      MimeMultipart mp = new MimeMultipart();      mp.setSubType("related");      MimeBodyPart mbp1= new MimeBodyPart();
          String html = 
            "<html>"+
            "<head><title></title></head>"+
            "<body>"+
            "<b> see the following jpg : it is a car!</b><br>"+
            "<a href=a.jsp>hello</a><br>"+
            "<IMG SRC=cid:23abc@pc27 width=80% height=60%><br>"+
            "<b> end of jpg</b>"+
            "</body>"+
            "</html>";      mbp1.setContent(html,"text/html");      MimeBodyPart mbp2 = new MimeBodyPart();
          FileDataSource fds = new FileDataSource(
            "d:/html/bmp/1-1-95679_0005.jpg");
          mbp2.setFileName(fds.getName());
          mbp2.setText("This is a beautiful car !");
          mbp2.setDataHandler(new DataHandler(fds));
          mbp2.setHeader("Content-ID","<23abc@pc27>");      mp.addBodyPart(mbp1);
          mp.addBodyPart(mbp2);
          msg.setContent(mp);      msg.setSentDate(new Date());      Transport.send(msg);
          System.out.println(mp.getCount());
          System.out.println("\nMail was sent successfully.");    } catch (Exception e) {
          e.printStackTrace();
        }
      

  3.   

    解决问题了!,原来是  mbp1.setContent(html, this.getMessageMimeType())的原因,没有制定编码格式,改为
      mbp1.setContent(html, "text/html; charset=GBK")就可以了!呵呵