как отправить HTML-письмо
Мне нужно отправить HTML-файл по электронной почте, но не как вложение.
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();
}
это отправка электронной почты просто с текстовым сообщением. Я хочу, чтобы отправить HTML-контент, который хранится в другом файле, но не как вложение
1 ответ:
не расстраивайтесь
MimeMessage
доMessage
:MimeMessage simpleMessage = new MimeMessage(mailSession);
затем, когда вы хотите установить тело сообщения, либо позвоните
simpleMessage.setText(text, "utf-8", "html");
или позвоните
simpleMessage.setContent(text, "text/html; charset=utf-8");
если вы предпочитаете использовать кодировку, кроме
utf-8
, замените его в соответствующем месте.JavaMail имеет дополнительный, бесполезный уровень абстракции, который часто оставляет вас с классами, такими как
Multipart
,Message
иAddress
, которые все имеют гораздо меньший функционал чем реальные подклассы (MimeMultipart
,MimeMessage
иInternetAddress
), которые на самом деле строятся...