MimeMessageHelper Spring 开机发送邮件
MimeMessageHelper Spring boot to send email
我正在使用 spring 引导发送电子邮件。来自我的电子邮件服务的代码片段
private @Autowired JavaMailSender mailSender;
和
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,
MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED, StandardCharsets.UTF_8.name());
helper.setTo(bo.getToEmails().parallelStream().toArray(String[]::new));
helper.setBcc(bo.getBccEmails().parallelStream().toArray(String[]::new));
helper.setCc(bo.getCcEmails().parallelStream().toArray(String[]::new));
helper.setText(htmlBody, true);
helper.setText(textBody, false);
helper.setSubject(bo.getSubject());
helper.setFrom(new InternetAddress(bo.getFromEmail(),bo.getSenderLabel()));
首先我设置了 htmlBody,然后是 textBody
helper.setText(htmlBody, true);
helper.setText(textBody, false);
它将 htmlBody 覆盖为 textBody 。如何使用 org.springframework.mail.javamail.MimeMessageHelper;
任何更新发送文本和 html 正文?
您可以使用 thymeleaf
作为您的 HTML 模板引擎。
示例 HTML 代码:
MySampleHTML.html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<title>Sample Email</title>
</head>
<body>
<div th:text="${sampleText}"></div>
</body>
<html>
样本Java代码:
public class EmailSample {
@Autowired
private JavaMailSender mailSender;
@Autowired
private TemplateEngine templateEngine; // From Thymeleaf
public void initiateEmailSend() {
String processedHTMLTemplate = this.constructHTMLTemplate();
// Start preparing the email
MimeMessagePreparator preparator = message -> {
MimeMessageHelper helper = new MimeMessageHelper(message, MimeMessageHelper.MULTIPART_MODE_MIXED, "UTF-8");
helper.setFrom("Sample <sample@example.com>");
helper.setTo("recipient@example.com");
helper.setSubject("Sample Subject");
helper.setText(processedHTMLTemplate, true);
};
mailSender.send(preparator); //send the email
}
// Fills up the HTML file
private String constructHTMLTemplate() {
Context context = new Context();
context.setVariable("sampleText", "My text sample here");
return templateEngine.process("MySampleHTML", context);
}
}
并在您的 pom.xml
中包含 thymeleaf
<!-- For email HTML templating -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
注意:将 MySampleHTML.html
文件放在 resources/templates/
文件夹中供 thymeleaf
查看。
而不是
helper.setText(htmlBody, true);
helper.setText(textBody, false);
使用
helper.setText(htmlBody, textBody);
我正在使用 spring 引导发送电子邮件。来自我的电子邮件服务的代码片段
private @Autowired JavaMailSender mailSender;
和
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,
MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED, StandardCharsets.UTF_8.name());
helper.setTo(bo.getToEmails().parallelStream().toArray(String[]::new));
helper.setBcc(bo.getBccEmails().parallelStream().toArray(String[]::new));
helper.setCc(bo.getCcEmails().parallelStream().toArray(String[]::new));
helper.setText(htmlBody, true);
helper.setText(textBody, false);
helper.setSubject(bo.getSubject());
helper.setFrom(new InternetAddress(bo.getFromEmail(),bo.getSenderLabel()));
首先我设置了 htmlBody,然后是 textBody
helper.setText(htmlBody, true);
helper.setText(textBody, false);
它将 htmlBody 覆盖为 textBody 。如何使用 org.springframework.mail.javamail.MimeMessageHelper;
任何更新发送文本和 html 正文?
您可以使用 thymeleaf
作为您的 HTML 模板引擎。
示例 HTML 代码:
MySampleHTML.html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<title>Sample Email</title>
</head>
<body>
<div th:text="${sampleText}"></div>
</body>
<html>
样本Java代码:
public class EmailSample {
@Autowired
private JavaMailSender mailSender;
@Autowired
private TemplateEngine templateEngine; // From Thymeleaf
public void initiateEmailSend() {
String processedHTMLTemplate = this.constructHTMLTemplate();
// Start preparing the email
MimeMessagePreparator preparator = message -> {
MimeMessageHelper helper = new MimeMessageHelper(message, MimeMessageHelper.MULTIPART_MODE_MIXED, "UTF-8");
helper.setFrom("Sample <sample@example.com>");
helper.setTo("recipient@example.com");
helper.setSubject("Sample Subject");
helper.setText(processedHTMLTemplate, true);
};
mailSender.send(preparator); //send the email
}
// Fills up the HTML file
private String constructHTMLTemplate() {
Context context = new Context();
context.setVariable("sampleText", "My text sample here");
return templateEngine.process("MySampleHTML", context);
}
}
并在您的 pom.xml
thymeleaf
<!-- For email HTML templating -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
注意:将 MySampleHTML.html
文件放在 resources/templates/
文件夹中供 thymeleaf
查看。
而不是
helper.setText(htmlBody, true);
helper.setText(textBody, false);
使用
helper.setText(htmlBody, textBody);