【发布时间】:2019-05-02 07:49:06
【问题描述】:
我正在尝试使用 thymeleaf 在邮件消息中附加一个文件,但在发送时出现模板解析错误。
package com.report.tool.services;
import java.nio.charset.StandardCharsets;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
@Service("sendmail")
public class MailSendService {
@Autowired
MailRepository mailrepository;
@Autowired
UserRepo userRepo;
@Autowired
SpringTemplateEngine templateEngine;
JavaMailSender mailSender;
EmailModel datamodel;
HttpSession session;
//Mail send
public Object sendMail(String filename) {
datamodel=new EmailModel();
try {
String usermail= "abc@abc.com";
//userRepo.findByToken("pPVHDe1ixjIEuNk").getEmail();
List<EmailMetaModel> mailmodel = mailrepository.findAll();
String email = null;
String pas = null;
for (Iterator iterator = mailmodel.iterator(); iterator.hasNext();) {
EmailMetaModel emailModel = (EmailMetaModel) iterator.next();
if (emailModel.getStatus() == true) {
email = emailModel.getEmail();
pas = emailModel.getEmailpassword();
}
}
String host = "smtp.gmail.com";
// Get system properties
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
Session s = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(s);
MimeMessageHelper helper = new MimeMessageHelper(message,
MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED,
StandardCharsets.UTF_8.name());
helper.addAttachment("logo.png", new ClassPathResource("Zeronsec.png"));
Context context = new Context();
//context.setVariable( );
String html = templateEngine.process("email-template", context);
helper.setTo(usermail);
helper.setText(html, true);
helper.setSubject("Any");
helper.setFrom(email);
message.setSubject("Thymleaf mail");
message.setText(html);
Transport tr = s.getTransport("smtps");
tr.connect(host, email, pas);
tr.sendMessage(message, message.getAllRecipients());
System.out.println("Mail Sent Successfully");
tr.close();
} catch (Exception sfe) {
System.out.println(sfe);
}
return "Mail sent";
}
}
- 此文件放在我项目的资源文件夹中。
- 我尝试了很多可能的情况,也访问了很多网站,但没有任何 单单这个错误。
- 请帮忙。任何帮助将不胜感激。
【问题讨论】:
-
也粘贴 fullstacktrace 和 thymeleaf 文件...存在一些解析问题并确保所有 html 标签都已关闭。
-
所有标签都完全结束。 HTML文件没有问题。这是我得到的错误:模板解析期间发生错误(模板:“ServletContext 资源 [/templates/email-template.html]”)
标签: html email spring-boot parsing thymeleaf