Я написал код для отправки уведомления по электронной почте, электронная почта правильно отправляется в outlook, но содержимое отображается в виде текста, а не html не удалось найти root причину, по которой код html не отображается как html в outlook
public boolean sendEmailForExpireIssue(Retrospection retrospection) throws EmailException, MessagingException {
log.info("Sending Expiry email to Products team. txId=\"{}\"", retrospection.getTxId());
boolean mailSent = true;
try {
JavaMailSender javaMailSender = emailConfig.getMailSender();
MimeMessage mimeMsg = prepareMailForExpairy(retrospection, javaMailSender);
javaMailSender.send(mimeMsg);
}catch (MailException me) {
log.error("Error occurred while sending an email ", me);
mailSent = false;
throw new EmailException(HttpStatus.INTERNAL_SERVER_ERROR, me.getMessage());
}
return mailSent;
}
private MimeMessage prepareMailForExpairy(Retrospection retrospection, JavaMailSender javaMailSender) throws MessagingException {
//Session session = null;
MimeMessage mimeMsg = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMsg, "utf-8");
String text = createEmialTemplate(retrospection);
MimeMultipart content = new MimeMultipart();
MimeBodyPart html = new MimeBodyPart();
html.setContent(text, "text/html");
html.setHeader("MIME-Version" , "1.0" );
html.setHeader("Content-Type" , html.getContentType() );
content.addBodyPart(html);
mimeMsg.setContent(content);
helper.setFrom(emailConfig.getSender());
helper.setTo(emailConfig.getRecipients());
helper.setSubject(RetrospectionConstants.EmailConstants.EXPIRY_MAIL_SUB);
helper.setText(text);
helper.setSentDate(new Date());
return mimeMsg;
}
private String createEmialTemplate(Retrospection retrospection) {
Asset asset = Asset.fromJson(retrospection.getAsset());
Info info = asset.getInfo();
ErrorResponse rca = ErrorResponse.fromJson(retrospection.getErrorResponse());
StringBuilder builder = new StringBuilder();
if(null != info) {
builder.append("<html>" +
"<body>" +
"<div style='overflow-x:auto;margin-left: auto; margin-right: auto; width:50%'>" +
"<h2 align='left'>Expiry Summary Report</h2>"+
"<table align='left' cellspacing='2' style='border-width: thick; margin: 0px auto;' height=130px; width=60% border='3' runat='server'>" +
"<tbody>"+
"<tr>"+
"<th>Failure Asset Id</th>"+
"<th>Expiry Date</th>"+
"</tr>"+
"<tr>"+
"<td>"XYZ"</td>"+
"<td>"2020-04-05"</td>"+
"<tr>"+
"</tbody>"+
"</table>"+
"</div>"+
"</body>"+
"</html>");
}
if(null != rca) {
builder.append("Root Cause Analysis ")
.append(rca.toJson());
}
return builder.toString();
}
После запуска приложения после того, как письмо получило электронное письмо на outlook, шаблон письма выглядит следующим образом
<html><body><div style='overflow-x:auto;margin-left: auto; margin-right: auto; width:50%'><h2 align='left'>Expiry Summary Report</h2><table align='left' cellspacing='2' style='border-width: thick; margin: 0px auto;' height=130px; width=60% border='3' runat='server'><tbody><tr><th>Id</th><th>Expiry Date</th></tr><tr><td>xyz</td><td>2020-04-26</td><tr></tbody></table></div></body></html>
Может кто-нибудь, пожалуйста, помогите мне в этом. Какой дополнительный код я должен добавить, чтобы html мог отрендерить.