Как отправить 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
), которые фактически создаются...