こんにちは。サイオステクノロジーの木村です。
Spring Bootでよく使われるテンプレートエンジン「Thymeleaf」を、今回はメールテンプレートとして利用し、HTMLメールを送信する方法についてご紹介いたします。
pom.xmlへの追記
Spring Boot のmail,thymeleafを使用するため、依存性を追記します。
設定ファイル(application.properties)の設定
テンプレートファイル
Thymeleafにてテンプレートを作成します。
リソースフォルダ配下に /resources/mailtemplate/samplemail.html というファイル名で作成します。
実装
<メール送信サービスクラス>
メール送信を行うためのサービスクラスを作成します。
・sendMailメソッド
SimpleMailMessageですとテキストメールしか送信できないため、MimeMessageを使用します。
・getMailBodyメソッド
Thymeleafのテンプレートを使用してメールの本文を作成しています。
templateNameには、Thymeleafで作成したテンプレートファイルの名称を指定します。
<メインクラス>
Contextに出力内容を設定し、メール送信サービスクラスのメールを送信するメソッドを呼び出してメール送信します。
<その他クラス>
Listで商品情報をもたせて、th:eachで繰り返し処理をして出力するといったようなサンプルにしているので、商品情報を格納するような以下のクラスを作成しました。
動作確認
上記で作成したアプリケーションを実行すると、以下のようなHTMLメールが送信されます。