对JAVAMAIL我不是很了解,但是项目中有个需求要把FTP服务器里的附件封在EML文件里发送。
从网上找了个例子:
... ...
mp = new MimeMultipart();
BodyPart mbp = new MimeBodyPart();FileDataSource fds = new FileDataSource(filename); // 得到数据源,filename='E:/a.txt'
mbp.setDataHandler(new DataHandler(fds)); // 得到附件本身并至入BodyPart
mbp.setFileName(MimeUtility.encodeText(fds.getName(), "GBK", "B")); // 得到文件名同样至入BodyPart
mp.addBodyPart(mbp);
... ...其中file那么是具体的路径,但现在我想通过FTP文件的URL来代替filename,用什么方法可以做到呢?谢谢。

解决方案 »

  1.   

     用URL来获得附件的内容.如下面代码就能得到FTP上文件的内容URL url = new URL(sourceUrl);
    InputStream stream = url.openStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(stream));
    String oneLine = "";
    while((oneLine=br.readLine()) != null) {
    sb.append(oneLine);
    }
      

  2.   

    那你用URLDataSource uds=new URLDataSource("************"); 这个试试
      

  3.   

    用这个可以了:
    mbp.setDataHandler(new DataHandler(new URL("XXX")));
      

  4.   

    用URLDataSource uds=new URLDataSource("************"); 也可以