第3章 メールを送信してみよう
3.2 メールを送ってみよう
実行結果

フォルダ構造

サンプルコード
【ファイル名:application.properties(カリキュラム上から取得)】
【ファイル名:pom.xml】(追記)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
【ファイル名:sendMail.html】
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>メールを送ってみよう</title> </head> <body> <p>メールを送信しました。</p> </body> </html>
【ファイル名:MailController.java】
package jp.co.f1.spring.mail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class MailController {
@Autowired
private MailSender mailSender;
/*
* 「/sendMail」へアクセスがあった場合
*/
@GetMapping("/sendMail")
public ModelAndView sendMail(ModelAndView mav) {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom("test.sender@kanda-it-school-system.com");
msg.setTo("test.receiver@kanda-it-school-system.com");
msg.setSubject("テストメール");
msg.setText("メール送信完了");// Set Message
mailSender.send(msg);
mav.setViewName("sendMail");
return mav;
}
}
アプリケーションにアクセス
以下のアドレスからアプリケーションにアクセスします。
URL:http://localhost:8080/sendMail
解説
【application.properties】
今回使用するSMTPサーバーを指定しています。
今回はスクールが用意しているサーバーを指定しています。実業務では現場で用意されたサーバー情報に合わせてサーバーの指定を行ってください。
ポート番号を指定します。ポート番号はアプリケーションを識別するための番号です。SMTPサーバーに接続する際には587番が使用されます。ここは詳細に理解する必要はないので『メール送信時に使うポート番号は587』程度の認識で大丈夫です。
これはサーバーにログインする際に使用するログイン情報を渡しています。
また、spring.mail.properties.mail.smtp.authをtrueにすることで、ログイン情報をSMTPサーバーに送信しています。
STARTTLSは通信を安全に行うための設定です。ここも詳細に理解する必要はないので、『通信情報を暗号化している』程度の認識で大丈夫です。
【MailController.java】
// オブジェクト作成 SimpleMailMessage msg = new SimpleMailMessage();
SimpleMailMessageクラスをオブジェクト作成しています。このクラスはメールメッセージをモデル化したクラスとなっています。このクラスのオブジェクトmsgを作成し、「送信元」「送信先」「件名」「本文」を格納していきましょう。
// メール情報を格納したmsgオブジェクトをsendメソッドに渡す mailSender.send(msg);
メール情報が格納されたオブジェクトmsgをmailSenderクラスのsendメソッドに渡しています。sendメソッドはメール送信処理を実行してくれます。
アプリケーションにアクセスすると、『メールを送信しました。』と表示されます。メールの受信ができているか、確認してみましょう(カリキュラム上から手順を取得)。