格式是multipart/related; 就是说 html文本里 图片标签是这样的<IMG  src="cid:0307AEC"> 
在JEditorPane 上显示
在客户端里把 这标签的对应CID的part的数据(图片数据) 读入了内存,有什么好方法在客户端上显示图片呢ps:我现在只知道:把图片从内存保存到本地硬盘上,然后把这图的物理路径 和img标签的cid替换,可以解决,但因为成了临时文件,这样读写硬盘又影响了速度,
我想能不能直接读取装图片的part的数据, 显示在JEditorPane里的 而不产生图片文件呢?
还有个问题,如果图片是在本地硬盘上:
String imgPath="如果path要的是相对路径,该怎么填才对?"  
String htmlText="<HTML></HEAD><BODY ><IMG src=" +   imgPath    + "></FONT></BODY></HTML>";
new JEditorPane("text/html",htmlText);不知道我是否描述得清析
因为平时没上,积分0了,真是不好意思 还请不吝赐教  thanks  
  bill

解决方案 »

  1.   

    java邮件系统自己写的感觉还不错 下载地址:http://download.csdn.net/source/3220522另外还可以在这里先看看运行效果:http://blog.csdn.net/afgasdg/archive/2011/04/24/6359702.aspx
      

  2.   

    谢谢afgasdg 
    我看过了,邮件系统做得不错, 但接收邮件后显示时,没做 multipart/related 内容的处理,不是我想要的例子,如果有outlook发有内容带有图片的邮件时,就没法显示了
    还有gmail是要ssl安全连接的,你的邮件系统登陆不了gmail呢,建议使用javaMail时在Properties里加入ssl的使用声明
      

  3.   

    问题已解决.
    相对路径可以在JEditor的docmunent中设base路和径格式是multipart/related; 在内存中处理而不产生临时文件,我的大概做法是
    1 .把含图像的(CID的)Part 用ByteArrayOutputStream 读入内存 成byte[]
    2. Image image = Toolkit.getDefaultToolkit().createImage(bytes); 生成Image 存放Map中,CID码为KEY IMAGE为value
    3 JEditor用的 扩展 HTMLEditorKit 和 HTMLFactory ,和 建一个像 ImageView 的类,重点重写public Image getImage() 方法 在map中通过cid码返回image解决方法个人认为比较完美的,如果有人遇到同样,站内可以找我交流
      

  4.   


    请问可以再具体些吗,我最近在做个基于JavaMail的邮件客户端,就卡在了字体属性及图片这块儿,不知道这些内容如何在JEditorPane上正确显示。
      

  5.   

    你好,我上面的方法不好,而且JEditor显示html本身就不用好.我有更好的方法,就是用第三方现成的类库去做,搜JDIC, 听说效果很好,能用他写个网页浏览器