web-dev-qa-db-ja.com

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コンテンツを送信したい

60
Prerna

MimeMessageMessageにアップキャストしないでください:

MimeMessage simpleMessage = new MimeMessage(mailSession);

次に、メッセージ本文を設定するときに、次のいずれかを呼び出します

simpleMessage.setText(text, "utf-8", "html");

または電話する

simpleMessage.setContent(text, "text/html; charset=utf-8");

utf-8以外の文字セットを使用する場合は、適切な場所で置き換えてください。

JavaMailには余分な抽象レイヤーがあり、多くの場合、MultipartMessage、およびAddressなどのクラスを保持しています。これらはすべて、実際のサブクラス(MimeMultipartMimeMessage、およびInternetAddress)は実際に構築されています...

116
dkarp