簡體   English   中英

JavaMail:當需要 HTML 時以純文本形式發送 MimeMessage?

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

我的Spring REST Web App 中有以下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);
        }
    }

我的代碼按預期發送了一封電子郵件,但是當我收到它時 - 它是痛苦的文本

HTML未呈現在電子郵件正文中,並且電子郵件以以下內容開頭:

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

如何確保以HTML而非純文本形式發送和呈現電子郵件?

嘗試像這樣直接設置 MimeMessage 內容。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM