▼ Backend/스프링 (Spring)

Spring Boot | 메일 발송하기 (Google SMTP)

Valar 2021. 6. 1. 11:09
반응형

▶ 스프링부트 메일 발송하기 (Google SMTP)

1. Google 홈페이지 Google 계정 관리(우측상단)

 

 

 

2. 보안 앱 비밀번호

앱 비밀번호는 위에 2단계 인증을 해야 생성됩니다.

 

 

 

3. 메일 Windows 컴퓨터 선택

 

 

 

4. 생성된 앱 비밀번호를 메모해둔다. (smtp 설정에 사용될 예정)

 

 

 

5. 빠른 설정(우측상단 톱니바퀴) 모든 설정 보기

 

 

 

6. 전달 및 POP/IMAP(탭) 모든 메일에 POP 사용하기 IMAP 사용 변경사항 저장

 

 

 

7. pom.xml
spring-boot-starter-mail 추가

 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

 

 

8. SMTP 설정 - application.properties

 

# spring-boot를 사용하면 JavaMailSender Bean을 생성할 필요 없이,
# 자동으로 생성이 된다. 그렇기 때문에 properties에 smtp설정만 해주면 된다. 
# 일반적인 spring을 사용한다면 JavaMailSender bean을 생성하여,
# bean에서 smtp 값들을 설정을 해줘야 한다.
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=sample.gmail.com # 앱 비밀번호를 발급 받은 구글 아이디
spring.mail.password=생성한 앱 비밀번호
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.auth=true

 

 

9. MailService.java 

 

import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

@Service
public class MailService {
     
    @Autowired
    private JavaMailSender javaMailSender;

    public void sendMail() {
        
        // 수신 대상을 담을 ArrayList 생성
        ArrayList<String> toUserList = new ArrayList<>();
        
        // 수신 대상 추가
        toUserList.add("수신대상1@gmail.com");
        toUserList.add("수신대상2@naver.com");
        
        // 수신 대상 개수
        int toUserSize = toUserList.size();
        
        // SimpleMailMessage (단순 텍스트 구성 메일 메시지 생성할 때 이용)
        SimpleMailMessage simpleMessage = new SimpleMailMessage();
        
        // 수신자 설정
        simpleMessage.setTo((String[]) toUserList.toArray(new String[toUserSize]));
        
        // 메일 제목
        simpleMessage.setSubject("Subject Sample");
        
        // 메일 내용
        simpleMessage.setText("Text Sample");
        
        // 메일 발송
        javaMailSender.send(simpleMessage);
    }
}

 

 

발송 결과

 

 

 

MailService Download

MailService.java
0.00MB

반응형