title: How to send html email to outlook from Java
body: <p>I'm trying to send an email in html format using JavaMail but it always seems to only display as a text email in Outlook. </p>
  
  <p>Here is my code:</p>
  
  <pre><code>try 
  {
      Properties props = System.getProperties();
      props.put("mail.smtp.host", mailserver);
      props.put("mail.smtp.from", fromEmail);
      props.put("mail.smtp.auth", authentication);
      props.put("mail.smtp.port", port);
      Session session = Session.getDefaultInstance(props, null);      
  
      // -- Create a new message --
      MimeMessage message = new MimeMessage(session);
  
      // -- Set the FROM and TO fields --
      message.setFrom(new InternetAddress(fromEmail, displayName));
      message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
  
      MimeMultipart content = new MimeMultipart();
      MimeBodyPart text = new MimeBodyPart();
      MimeBodyPart html = new MimeBodyPart();
  
      text.setText(textBody);
      text.setHeader("MIME-Version" , "1.0" );
      text.setHeader("Content-Type" , text.getContentType() );
  
      html.setContent(htmlBody, "text/html");
      html.setHeader("MIME-Version" , "1.0" );
      html.setHeader("Content-Type" , html.getContentType() );
  
      content.addBodyPart(text);
      content.addBodyPart(html);
  
      message.setContent( content );
      message.setHeader("MIME-Version" , "1.0" );
      message.setHeader("Content-Type" , content.getContentType() );
      message.setHeader("X-Mailer", "My own custom mailer");
  
      // -- Set the subject --
      message.setSubject(subject);
  
      // -- Set some other header information --
      message.setSentDate(new Date());
  
      // INFO: only SMTP protocol is supported for now...
      Transport transport = session.getTransport("smtp");
      transport.connect(mailserver, username, password);
      message.saveChanges();
  
      // -- Send the message --
      transport.sendMessage(message, message.getAllRecipients());
      transport.close();
  
      return true;
  
  } catch (Exception e) {
      LOGGER.error(e.getMessage(), e);
      throw e;
  }       
  </code></pre>
  
  <p>Any ideas why the html version of the email won't display in Outlook? </p>