关于Java spring MimeMessageHelper发送带图片的电子邮件

时间:2011-06-21 22:29:16

标签: java spring mime-message

我的文件服务器上有图像,我希望将其嵌入到我的电子邮件中。

我可以像这样发送带有本地图片的电子邮件

message.addInline("image1", new ClassPathResource("../../static/images/123.jpg"));

但如果我想用我的文件服务器图像发送电子邮件,则无效。

message.addInline("image1", new ClassPathResource("http://fileserver.com/images/123.jpg"));

有人知道有办法吗?

2 个答案:

答案 0 :(得分:2)

这个问题已经有一年了,但我想为其他人提供帮助......

Spring有办法完成你想要的工作。看看这个chapter of the Spring 3x referenceOr 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();
...