目次へ

2. MIMEの取扱

2.1. HTMLメールを送る

昔のメールでは、1文字7ビット(ASCII文字)のテキストデータしか送ることができず、また送ることのできるデータ量にも制限がありました。これをどのようなデータでも送信できるように改良し、データ量の制限も無くしたものが MIME (Multi-purpose Internet Mail Extensions encoding) です。元来は日本語のテキストも送ることができなかったのですが、 MIME のお陰で送信できるようになりました。この節では JavaMail で MIME メールを送信する方法について説明します。まず始めに、 Plain テキスト以外のデータを送る方法について説明します。

メールを送信する際、送信するテキストデータを以下のように setText メソッドで設定していました。

MimeMessage mimeMessage=new MimeMessage(session);
...
mimeMessage.setText(new Date().toString());

Plain テキスト以外のデータを送信する場合には、setText 以外のメソッドを使用してデータを設定します。Plain テキスト以外のテキストデータの場合には、「setContent」メソッドを使用します。HTMLメールを送る場合には以下のようにします。

MimeMessage mimeMessage=new MimeMessage(session);
...
String html="<html><body><h1>Hello</h1>How are you today?</body></html>";
mimeMessage.setContent(html, "text/html"); // HTMLの指定

setContentメソッドの定義は以下の通りです。第1引数に送信データ、第2引数に送信データのMIMEタイプを設定します。

void setContent(Object obj, String type) throws javax.mail.MessagingException

例では送信データとしてHTMLテキスト、MIMEタイプとして「text/html」を指定しています。もし日本語データを含むHTMLテキストを送信したい場合には、text/html の「charset」属性で文字コードを指定します。以下のようになります。

String html="<html><body><h1>こんにちは</h1>お元気ですか?</body></html>";
mimeMessage.setContent(html, "text/html; charset=iso-2022-jp"); // 日本語を含むHTMLの指定

(実習課題1)

以下のコンソールアプリケーションを作成しなさい。

  • 指定したアドレスに対して、HTMLメールを送信する。
  • 宛先アドレスは1つ目のプログラム引数で指定する。
  • 本文となるHTMLの内容は、2つ目のプログラム引数で指定されたファイルから読み込まれる。
  • タイトルの内容は任意。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp