SetViewNames、spring 4、thymeleaf和java

SetViewNames、spring 4、thymeleaf和java,java,spring,spring-mvc,thymeleaf,Java,Spring,Spring Mvc,Thymeleaf,我尝试开发一个应用程序,只需发送一封带有图像的电子邮件。 我看到了一些涉及配置以下属性的解决方案 <property name="viewNames" value="templates/*, pages/*" /> 代码如下: 配置 @Bean public ServletContextTemplateResolver templateResolver(){ ServletContextTemplateResolver resolver=new ServletContex

我尝试开发一个应用程序,只需发送一封带有图像的电子邮件。 我看到了一些涉及配置以下属性的解决方案

<property name="viewNames" value="templates/*, pages/*" />
代码如下:

配置

@Bean 
public ServletContextTemplateResolver templateResolver(){
    ServletContextTemplateResolver resolver=new ServletContextTemplateResolver();
    resolver.setPrefix("/WEB-INF/");
    resolver.setSuffix(".html");
    resolver.setCharacterEncoding("UTF-8");
    resolver.setTemplateMode("HTML5");
    return resolver;
}

@Bean
public ThymeleafViewResolver thymeleafView(){
    ThymeleafViewResolver thymeleaf = new ThymeleafViewResolver();

    thymeleaf.setTemplateEngine(templateEngine());
    thymeleaf.setCharacterEncoding("UTF-8");
    thymeleaf.setOrder(1);
    return thymeleaf;
}

@Bean
public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine engine = new SpringTemplateEngine();
    engine.setTemplateResolver(templateResolver());
    return engine;
}

@Bean
public SpringResourceTemplateResolver SourceTemplateResolver(){
    SpringResourceTemplateResolver sourceTemplateResolver = new SpringResourceTemplateResolver();

    sourceTemplateResolver.setSuffix(".html");
    sourceTemplateResolver.setTemplateMode("HTML5");
    return sourceTemplateResolver;
}
观点:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title th:remove="all">Template for HTML email with inline image</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<p> Hello, everybody!</p>
<p> You have been successfully subscribed to the <b>Fake newsletter</b> on</p>
<p>Your hobbies are:</p>
<p> You can find <b>your inlined image</b> just below this text.</p>

<p><img src="LogoLehrer.jpg" th:src="'cid:' + ${imageResourceName}"/></p>

<p> Regards, <br/> <em>The Thymeleaf Team</em></p>
</body>
</html>
以及发送电子邮件的方法:

public void send(String to, String subject, String body,
     String recipientName, String recipientEmail,
     Locale locale,HttpServletRequest request,
     HttpServletResponse response, final MultipartFile image,
     final byte[] imageBytes, final String imageResourceName) throws MessagingException {

    // final Context ctx = new Context(locale);
    final WebContext ctx = new WebContext(request, response, servletContext, locale);
    ctx.setVariable("name", recipientName);
    ctx.setVariable("mail", recipientEmail);
    ctx.setVariable("imageResourceName", imageResourceName); 
    final String htmlContent = this.templateEngine.process("email_Template", ctx);


    MimeMessage message = javaMailSender.createMimeMessage();
    MimeMessageHelper helper;

    helper = new MimeMessageHelper(message,true);
    helper.setSubject(subject);
    helper.setTo(to);
    helper.setText(htmlContent, true); 

    final InputStreamSource imageSource = new ByteArrayResource(imageBytes);
    helper.addInline(image.getName(), imageSource, image.getContentType());
    this.javaMailSender.send(message);

}
@RequestMapping("/sendmail")
public void sendMail(final Locale locale, HttpServletRequest request,
                     HttpServletResponse response,
                     @RequestParam("imageResourceName") final MultipartFile image)
        throws MessagingException, IOException {

    mailSender.send("lehrerxx@gmail.com", "prueba spring final", 
    "I have luck", "Lehrer", locale,request,
    response, image, image.getBytes(), image.getName());
}
public void send(String to, String subject, String body,
     String recipientName, String recipientEmail,
     Locale locale,HttpServletRequest request,
     HttpServletResponse response, final MultipartFile image,
     final byte[] imageBytes, final String imageResourceName) throws MessagingException {

    // final Context ctx = new Context(locale);
    final WebContext ctx = new WebContext(request, response, servletContext, locale);
    ctx.setVariable("name", recipientName);
    ctx.setVariable("mail", recipientEmail);
    ctx.setVariable("imageResourceName", imageResourceName); 
    final String htmlContent = this.templateEngine.process("email_Template", ctx);


    MimeMessage message = javaMailSender.createMimeMessage();
    MimeMessageHelper helper;

    helper = new MimeMessageHelper(message,true);
    helper.setSubject(subject);
    helper.setTo(to);
    helper.setText(htmlContent, true); 

    final InputStreamSource imageSource = new ByteArrayResource(imageBytes);
    helper.addInline(image.getName(), imageSource, image.getContentType());
    this.javaMailSender.send(message);

}