KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
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. Here is my 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; }
Tags (comma-separated)
Save Edits
Cancel