我的文件服务器上有图像,我希望将其嵌入到我的电子邮件中。
我可以像这样发送带有本地图片的电子邮件
message.addInline("image1", new ClassPathResource("../../static/images/123.jpg"));
但如果我想用我的文件服务器图像发送电子邮件,则无效。
message.addInline("image1", new ClassPathResource("http://fileserver.com/images/123.jpg"));
有人知道有办法吗?
答案 0 :(得分:2)
这个问题已经有一年了,但我想为其他人提供帮助......
Spring有办法完成你想要的工作。看看这个chapter of the Spring 3x reference。 Or Spring2x
简历中: 您可以从服务器的文件文件系统中获取映像文件。正如您在参考文献中看到的那样:
Resource res = new FileSystemResource(new File("c:/Sample.jpg"));
helper.addInline("identifier1234", res);
或者从应用程序的类路径的相对路径:
Resource res = new ClassPathResource("mx/blogspot/jesfre/test/image.png");
但是,如果你想从带有URL的文件服务器发送资源,你可以像@Ralph那样做:
Url url = new URL("http://fileserver.com/images/123.jpg");
Resource res = new InputStreamResource(u.openStream());
然后,只需将资源添加到您的消息中:
helper.addInline("myIdentifier", res);
希望这有助于某人...
答案 1 :(得分:1)
问题是http://fileserver.com/images/123.jpg
不是类路径资源。
如果从文件系统访问图像,则从java.io
包中提取文件访问类。
如果你真的需要通过http访问文件,那么你需要先下载文件。
Url url = new URL("http://fileserver.com/images/123.jpg");
InputStream is = u.openStream();
...