JavaMail:当预期 HTML 时,MimeMessage 以纯文本形式发送?

JavaMail: MimeMessage sent as plain text when HTML is expected?

我的 Spring REST Web 应用程序中有以下 Java 代码:

代码:

@Service("Mailer")
public class Mailer {

    private final JavaMailSender mailSender;

    private void send(final Email email){

        MimeMessage mimeMessage = mailSender.createMimeMessage();

        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
        helper.setFrom(address);
        helper.setTo(email.to());
        helper.setSubject(email.subject());

        helper.setText(email.content(), true); //is this correct?

        mailSender.send(mimeMessage);

    }

}   

MimeMessageHelper setText():

public void setText(String text, boolean html) throws MessagingException {
        Assert.notNull(text, "Text must not be null");
        MimePart partToUse;
        if (isMultipart()) {
            partToUse = getMainPart();
        }
        else {
            partToUse = this.mimeMessage;
        }
        if (html) {
            setHtmlTextToMimePart(partToUse, text);
        }
        else {
            setPlainTextToMimePart(partToUse, text);
        }
    }

我的代码按预期发送了一封电子邮件,但当我收到它时 - 它在 pain text 中。

HTML 未在电子邮件正文中呈现,并且电子邮件以:

开头
<!DOCTYPE html>
<html lang="en">
   <head>
...

如何确保电子邮件以 HTML 而不是纯文本的形式发送和呈现?

尝试像这样直接设置 MimeMessage 内容。

mimeMessage.setContent(email.content(), "text/html");
mimeMessage.saveChanges();