본문 바로가기

Backend/Spring

Spring Boot 메일 발송 (gmail, naver, daum, nate)

스프링 부트 환경에서 메일을 발송해볼게요.

관리자 계정으로 서버의 상태를 전송한다던가 이메일 인증 메일을 보낸다던가할 때 지금 포스팅한 내용대로 적용하실 수 있을 것 같네요.

 

준비사항으로는 본인의 gmail, naver, daum, nate 계정 중 하나 있어야 아래 과정을 따라하실 수 있어요.

pom.xml

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

bulid.gradle

implementation 'org.springframework.boot:spring-boot-starter-mail'

GMAIL

더보기

 

메일 발송을 구현하기 전에 해야할 일이 있어요.

SMTP를 사용할 수 있도록 허용해야 해요.

브라우저에서 메일 발송자가 될 구글 계정에 접속하시고 아래 URL을 클릭해주세요.

 

https://myaccount.google.com/lesssecureapps

 

로그인 - Google 계정

하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인

accounts.google.com

 

application.yml

 

spring:
  mail:
    host: smtp.gmail.com
    port: 587
    username: 이메일@gmail.com
    password: 비밀번호
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true

NAVER

더보기

 

메일 발송자가 될 네이버 계정에 로그인하신 후

네이버 메일 - 좌측 메뉴 내 메일함 - 설정 버튼(톱니바퀴)을 눌러주세요.

 

 

그럼 SMTP 설정을 할 수 있는 메뉴가 있어요.

사용함으로 바꿔주시고 확인 버튼 눌러주시면 사용할 준비는 끝입니다.

POP3와 IMAP의 차이는 여기서 다루지 않을게요.

IMAP 탭에서 사용함으로 바꿔주어도 사용 가능합니다.

전 여기서 POP3로 할게요. 첫 째칸에 있으니...

 

 

 

application.yml

 

spring:
  mail:
    host: smtp.naver.com
    port: 465
    username: 이메일@naver.com
    password: 비밀번호
    properties:
      mail.smtp.auth: true
      mail.smtp.ssl.enable: true

 

DAUM

더보기

 

메일 발송자가 될 다음 계정에 로그인하신 후

다음 메일 - 좌측 메뉴 내 메일함 - 설정 버튼을 눌러주세요.

 

 

그럼 SMTP 설정을 할 수 있는 메뉴가 있어요.

사용함으로 바꿔주시고 확인 버튼 눌러주시면 사용할 준비는 끝입니다.

POP3와 IMAP의 차이는 여기서 다루지 않을게요.

POP 탭에서 사용함으로 바꿔주어도 사용 가능합니다.

IMAP이 앞 칸에 있으니 전 IMAP으로!

 

 

application.yml

 

spring:
  mail:
    host: smtp.daum.net
    port: 465
    username: 이메일@daum.net
    password: 비밀번호
    properties:
      mail.smtp.auth: true
      mail.smtp.ssl.enable: true

NATE

더보기

 

메일 발송자가 될 네이트 계정에 로그인하신 후

네이트 메일 - 좌측 메뉴 내 메일함 - 설정 버튼을 클릭해주세요.

 

 

 

네이트 smtp 서버 도메인은 smtp 뒤에 mail이 붙어요.

첨할 때 계속 smtp.nate.com으로 해서 안되서 공지사항 확인해봤는데 역시나 제 잘못이였어요.

IMAP/SMTP 사용설정에서 사용을 누르고 저장해주세요.

네이트는 default가 사용으로 되있네요.

 

application.yml

 

spring:
  mail:
    host: smtp.mail.nate.com
    port: 465
    username: 이메일@nate.com
    password: 비밀번호
    properties:
      mail.smtp.auth: true
      mail.smtp.ssl.enable: true

메일 발송 구현

@Autowired
public JavaMailSender javaMailSender;

@Async
public void sendMail(String email) {
	SimpleMailMessage simpleMessage = new SimpleMailMessage();
	// simpleMessage.setFrom("보낸사람@naver.com"); // NAVER, DAUM, NATE일 경우 넣어줘야 함
	simpleMessage.setTo(email);
	simpleMessage.setSubject("이메일 인증");
	simpleMessage.setText("인증번호: 123456");
	javaMailSender.send(simpleMessage);
}

 

단순히 텍스트를 발송할 때는 SimpleMailMessage 객체를 사용하면 되요.

아래와 같은 필드들이 있어요. 다 아는 단어들일거에요.

 

 

국내에서 사용하는 대표적인 메일 계정들로 메일을 발송했어요.

어떤 메일을 쓰던 거의 같거나 비슷비슷해요.

다른 메일을 연동할 때도 정보만 다르니 참고하시면 좋을 것 같습니다.