SpringBoot メール送信のサンプル

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アカウント>セキュリティ>アプリパスワードをクリックして設定します。

関連の記事

SMTPとPOPとIMAPの違い(メールのプロトコル)

△上に戻る