Spring Boot 메일 송신

Gmail을 사용하여 이메일을 보내 본다.

앱 비밀번호 생성

2 단계 인증을 사용하는 경우는 먼저 앱 비밀번호를 생성한다.

앱 비밀번호 생성

의존 jar를 얻는다.

Java MailJavaBeans Activation Framework를 다운로드 해 온다.

의존 관계 추가

build.gradle

dependencies {
    compile 'org.springframework.boot:spring-boot-starter'
+   compile 'org.springframework.boot:spring-boot-starter-mail'
+   compile fileTree(dir: 'libs', include: '*.jar')
}

폴더 구성

|-build.gradle
|-libs/
|  |-activation.jar
|  `-javax.mail.jar
`-src/

코드 작성

application.properties

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=<Gmail 계정>
spring.mail.password=<비밀번호>
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

※ 2 단계 인증을 사용하는 경우는 “응용 프로그램 비밀번호"를, 그렇지 않은 경우는 보통의 로그인 비밀번호를 설정한다.

Main.java

package sample.springboot;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;

@SpringBootApplication
public class Main {

    public static void main(String[] args) {
        try (ConfigurableApplicationContext ctx = SpringApplication.run(Main.class, args)) {
            ctx.getBean(Main.class).sendMail();
        }
    }

    @Autowired
    private MailSender sender;

    public void sendMail() {
        SimpleMailMessage msg = new SimpleMailMessage();

        msg.setFrom("test@mail.com");
        msg.setTo("대상 이메일 주소");
        msg.setSubject("Send mail from Spring Boot");
        msg.setText("Spring Boot에서 메일을 보낼 수 있다.");

        this.sender.send(msg);
    }
}

수신 결과 확인

해당 이메일 주소로 가서 수신 결과를 확인한다.




최종 수정 : 2017-12-17