gpt4 book ai didi

java - Spring MVC - 在 java 类中提供静态内容

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:47 25 4
gpt4 key购买 nike

我的 Spring 项目中有一个发送电子邮件的函数。现在我想在该电子邮件中发送 png 图像。

helper.addInline("myLogo", new ClassPathResource("resources/static/image/logo-mail.png"));

我的问题是:我如何将该图像文件提供给我的 java 类。我尝试将文件映射到 Controller 中的 URL,但这不起作用。谢谢你!问候

最佳答案

问题是你想如何发送内联图像,因为这就是你的帮助类正在尝试做的事情。

理想情况下,您应该使用此语法加载图像

<img src="cid:imageName.png"></img>

下一个问题是如何获取电子邮件中的图像 - 这就是您的问题所在?我建议将 Spring JavaMailSender 与 Spring Resource 接口(interface)结合起来,以在生成的电子邮件中加载和存储图像数据。

  1. 将图像加载为资源对象 - 假设您的文件为/images/logo.png。此处使用 apache commons 库。
InputStreamSource imageSource = new ByteArrayResource(IOUtils.toByteArray(getClass().getResourceAsStream("/images/logo.png")))
  • 下一步是将图像作为附件添加到 MIME 消息中:
  • JavaMailSender mailSender = new JavaMailSenderImpl();  // Or use Spring IoC to inject a pre-configured JavaMailSenderImpl
    MimeMessage mimeMessage = mailSender.createMimeMessage();
    MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
    // Add information to the message, such as subject, recipients, etc
    message.addInline("logo.png", imageSource);

    MimeMessageHelper 的 addInline() 方法从 InputStreamSource 读取字节数据并创建内联 MIME 正文部分来保存附件。它还将内容 ID 设置为第一个参数提供的名称。现在,剩下的就是在 HTML 正文中引用图像:

    message.setText("<img src=\"cid:logo.png\"></img><div>My logo</div>", true);

    关于java - Spring MVC - 在 java 类中提供静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35129366/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com