JSPを使ってHTML形式のメールを送信する方法【コード例で解説】
ここでは、自分のマシンからHTML形式のメールを送信する具体例を紹介します。この例では、localhostがインターネットに接続されており、メールを送信できる環境が整っていることを前提としています。また、JavaMail APIパッケージとJAF(JavaBeans Activation Framework)パッケージに含まれるすべてのJARファイルが、CLASSPATHに設定されていることを必ず確認してください。
前回の例との違いは?
このサンプルは基本的にプレーンテキストメールを送る例とほぼ同じ構成ですが、決定的な違いが1つあります。それがsetContent()メソッドの使用です。第2引数に"text/html"を指定することで、メッセージ本文にHTMLコンテンツが含まれていることを明示的に伝えています。
この手法を使えば、必要なだけ大きなHTMLコンテンツを自由にメール本文として送信できます。テーブルや画像タグ、スタイル指定なども含めたリッチなメールを作成可能です。
サンプルコード
<%@ page import = "java.io.*,java.util.*,javax.mail.*"%>
<%@ page import = "javax.mail.internet.*,javax.activation.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%
String result;
// 宛先のメールアドレスを指定します
String to = "abcd@gmail.com";
// 送信元のメールアドレスを指定します
String from = "mcmohd@gmail.com";
// localhostからメールを送信する前提です
String host = "localhost";
// システムプロパティオブジェクトを取得します
Properties properties = System.getProperties();
// メールサーバーをセットアップします
properties.setProperty("mail.smtp.host", host);
// デフォルトのSessionオブジェクトを取得します
Session mailSession = Session.getDefaultInstance(properties);
try {
// デフォルトのMimeMessageオブジェクトを作成します
MimeMessage message = new MimeMessage(mailSession);
// Fromヘッダーフィールドを設定します
message.setFrom(new InternetAddress(from));
// Toヘッダーフィールドを設定します
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// 件名を設定します
message.setSubject("This is the Subject Line!");
// HTMLメッセージ本体を送信します(サイズは自由)
message.setContent("<h1>This is actual message</h1>", "text/html" );
// メッセージを送信します
Transport.send(message);
result = "Sent message successfully....";
} catch (MessagingException mex) {
mex.printStackTrace();
result = "Error: unable to send message....";
}
%>
<html>
<head>
<title>Send HTML Email using JSP</title>
</head>
<body>
<center>
<h1>Send Email using JSP</h1>
</center>
<p align = "center">
<%
out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>
実装時のポイント
実際に運用する際には、以下の点にも注意しましょう。
- SMTPサーバーの認証: Gmailなどの外部SMTPサーバーを利用する場合は、
mail.smtp.authをtrueに設定し、認証情報を渡す必要があります。 - 文字エンコーディング: 日本語のメールを送る場合は、
setSubject()やsetContent()で「ISO-2022-JP」などの適切な文字コードを指定すると、文字化けを防げます。 - 例外処理:
MessagingExceptionだけでなく、ネットワークエラーなども考慮した堅牢なエラーハンドリングを心がけましょう。
このように、JSPとJavaMail APIを組み合わせれば、数行のコードでHTMLメール送信機能を実装できます。ニュースレターや通知メールなど、見栄えの良いメールを自動配信したい場合にぜひ活用してください。
-
メールの送り方を徹底解説!Gmailで失敗しないための9つのステップとコツ
メールを送りたいけれど、何から始めればいいのか分からない——そんな経験はありませんか?あるいは、すでにメールは送れるけれど、もっと質の高いメールを作りたいと考えている方もいるでしょう。この記事では、メール送信の基本から実践的なコツまで、順を追って詳しく解説します。「メールを送る」という行為自体はシンプルに思えますが、相手にきちんと伝わる良いメールを書くのは決して簡単ではありません。宛先と本文さえあれば十分だと考えがちですが、実際にはそれ以外にも押さえるべきポイントが数多くあります。ここでは、質の高いメールを送るための手順を紹介します。メールを送るために必要なものメールの送り方を説明する前に、事
-
Excelで日付に基づいてメールを自動送信する3つの方法【VBAコード付き解説】
この記事では、日付に基づいてExcelからメールを自動送信する最適な方法をご紹介します。通常、OutlookやGmailからメールを送るのは簡単ですが、特定の日時や日付に合わせてメールを送りたい場合には、Microsoft Excelを効果的に活用できます。サンプルデータにはいくつかのメールアドレスが含まれています(すべてダミーアドレスですが、admin@wsxdn.comのみ筆者自身のアドレスです)。動作確認のため筆者のアドレスを使用しています。日付に基づいてExcelからメールを自動送信する3つの方法方法1: Excel VBAを使って固定日付に基づきメールを自動送信するMicrosoft