如何在java中获取电子邮件的附件完整路径

时间:2014-04-17 10:25:38

标签: java email

几乎所有java示例都显示了如何发送电子邮件设置虚拟文件路径。但实际上我们在文件选择之前并不知道路径。我已经知道input = file由于安全问题无法获得文件的完整路径。那么我怎样才能获得路径,因为电子邮件功能必须使用路径?

以下是大多数示例中使用文件路径的部分

String path = "D:\\jar\\java-json.jar";
String fileName = "java-json.jar";
DataSource source = new FileDataSource(path);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);

3 个答案:

答案 0 :(得分:0)

你试过Apache Commons Email库吗? 它具有电子邮件附件的功能,并且内置了对java servlet集成的支持。

答案 1 :(得分:0)

好的,最后它显示了Internet上的大多数java电子邮件示例对Web浏览器没用,因为Web浏览器无法获取文件的完整路径。最后我使用InputStream获取文件并将其放入DataSource。这两行是关键:

InputStream filecontent = filePart.getInputStream();
DataSource source = new ByteArrayDataSource(filecontent, "Text/txt");

答案 2 :(得分:0)

如果您使用的是'java-mail-1.4。*。jar',那么就这样做...... 你使用'JFileChooser'创建文件选择器弹出窗口,然后可以(例如)在你的actionListner方法中为按钮执行以下操作 -

 filepath = fc.getSelectedFile().getAbsolutePath();

其中'filepath'是String,'fc'是'JFileChooser'类的对象