I have to send HTML file via email but not as attachment.
Message simpleMessage = new MimeMessage(mailSession);
try {
fromAddress = new InternetAddress(from);
toAddress = new InternetAddress(to);
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
simpleMessage.setFrom(fromAddress);
simpleMessage.setRecipient(RecipientType.TO, toAddress);
simpleMessage.setSubject(subject);
simpleMessage.setText(text);
Transport.send(simpleMessage);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
It is sending email simply with text message. I want to send HTML content which is stored in another file but not as attachment
Don't upcast your MimeMessage
to Message
:
MimeMessage simpleMessage = new MimeMessage(mailSession);
Then, when you want to set the message body, either call
simpleMessage.setText(text, "utf-8", "html");
or call
simpleMessage.setContent(text, "text/html; charset=utf-8");
If you'd rather use a charset other than utf-8
, substitute it in the appropriate place.
JavaMail has an extra, useless layer of abstraction that often leaves you holding classes like Multipart
, Message
, and Address
, which all have much less functionality than the real subclasses (MimeMultipart
, MimeMessage
, and InternetAddress
) that are actually getting constructed...