关于Java spring MIMessageHelper发送带有图像的电子邮件

关于Java spring MIMessageHelper发送带有图像的电子邮件,java,spring,mime-message,Java,Spring,Mime Message,我的文件服务器上有图像,我想将其嵌入电子邮件中 我可以用这种方式发送带有本地图像的电子邮件 message.addInline("image1", new ClassPathResource("../../static/images/123.jpg")); 但是,如果我想用我的文件服务器图像发送电子邮件,将无法工作 message.addInline("image1", new ClassPathResource("http://fileserver.com/images/123.jpg"))

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

我可以用这种方式发送带有本地图像的电子邮件

message.addInline("image1", new ClassPathResource("../../static/images/123.jpg"));
但是,如果我想用我的文件服务器图像发送电子邮件,将无法工作

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

有人知道有办法吗?

问题是
http://fileserver.com/images/123.jpg
不是类路径资源

如果从文件系统访问映像,则从
java.io
包访问文件类。 如果确实需要通过http访问文件,则需要先下载文件

Url url = new URL("http://fileserver.com/images/123.jpg");
InputStream is = u.openStream();
...

这个问题已经有一年了,但我想为帮助其他人做出贡献

Spring有办法完成你想要的工作。看看这个

在简历中: 您可以从服务器的文件系统获取映像文件。正如您在参考资料中所看到的:

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 said:

Url url = new URL("http://fileserver.com/images/123.jpg");
Resource res = new InputStreamResource(u.openStream());
然后,只需将资源添加到您的邮件中:

helper.addInline("myIdentifier", res);
希望这能帮助别人