SpringBootのメール送信のサンプルです。
(確認環境:Spring Boot 2.5,JDK 11)
目次
サンプル | メール送信する概要 |
pom.xml | |
メールを送信するコード(MainController) | |
設定ファイル(application.properties) |
メール送信する概要
画面からMainController.javaにアクセスするとメールを送信します。
pom.xml
必要なライブラリです。<dependencies>内にコピペします。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
メールを送信するコード(MainController)
package com.example.demo;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MainController {
private final MailSender mailSender;
public MainController(MailSender mailSender) {
this.mailSender = mailSender;
}
@GetMapping("/")
public String write1() {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom("test@example.com"); // 送信元メールアドレス
msg.setTo("test@example.com"); // 送信先メールアドレス
// msg.setCc(); //Cc用
// msg.setBcc(); //Bcc用
msg.setSubject("テストタイトル"); // タイトル
msg.setText("テスト本文\r\n改行します。"); //本文
try {
mailSender.send(msg);
} catch (MailException e) {
e.printStackTrace();
}
return "hello";
}
}
20~26行目は、送信先のメールアドレスやメール本文等の設定を行っています。
26行目は、メール本文です。改行の場合は改行コード(\r\n)を使用します。
29行目は、sendメソッドでメールを送信します。
以下は、springのSimpleMailMessageクラスのリンクです。
https://spring.pleiades.io/spring-framework/docs/current/javadoc-api/org/springframework/mail/SimpleMailMessage.html
設定ファイル(application.properties)
server.port = 8765
spring.mail.host=smtpサーバ
spring.mail.port=ポート番号
spring.mail.username=ユーザ名
spring.mail.password=パスワード
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
6行目のauthはSMTP認証(SMTP AUTH)です。
7行目のstarttlsは暗号化通信です。
googleのGmail設定を使用する場合
googleのGmail設定を使用する場合は以下の設定を行います。
smtpサーバ=smtp.gmail.com
port=587
username=googleのメールアドレス
password=アプリパスワード
アプリパスワードは、googleアカウント>セキュリティ>アプリパスワードをクリックして設定します。
関連の記事