Java setContent()接受包含html代码的文件名

Java setContent()接受包含html代码的文件名,java,html,email,Java,Html,Email,我有一个html.txt文件,里面有html代码。我希望我的java代码发送一封邮件,如下所示: MimeMessage msg = new MimeMessage(session); msg.addHeader("Content-type", "text/HTML; charset=UTF-8"); msg.addHeader("format", "flowed"); msg.addHeader("Content-Transfer-Encoding", "8bit"); msg.setFrom

我有一个html.txt文件,里面有html代码。我希望我的java代码发送一封邮件,如下所示:

MimeMessage msg = new MimeMessage(session);
msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
msg.addHeader("format", "flowed");
msg.addHeader("Content-Transfer-Encoding", "8bit");
msg.setFrom(new InternetAddress("abc@xyz.com"));
msg.setSubject(subject, "UTF-8");
msg.setContent(body, "text/HTML");
我希望上面的正文读取html.txt文件并以html格式发送邮件。如何执行此操作?

您应该将html.txt文件读入字符串

请注意,您的html.txt文件不应包含或标记


希望这会有所帮助。

您需要将文件内容解析为字符串。在您的情况下,则解析为字符串正文
    Scanner scanner = new Scanner(new File("<path to html.txt>"));
    StringBuilder sb = new StringBuilder();
    while(scanner.hasNextLine()) {
        sb.append(scanner.nextLine());
    }

    String body = sb.toString();
   msg.setContent(body, "text/html; charset=UTF-8");