-
Spring Boot - SMTP 메일 전송 ( Naver )SpringBoot/SMTP 메일전송 ( Naver ) 2021. 6. 15. 15:42
SMTP Mail Service With Naver 네이버 메일 전송 방법!
1. 네이버 환경설정
1.1 아래 사진에 표시되어있는 메일 -> 환경설정으로 들어갑니다.
1.2 아래 사진에 표시된 POP/IMAP 설정으로 들어갑니다.
1.3 아래 사진과 같이 POP3/SMTP 사용에 '사용함' 을 체크하시고 원하시는 설정값을 고른 뒤 저장합니다.
2. SpringBoot에서의 사용을 위한 설정
2.1 Dependency 추가
Maven
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
Gradle
implementation 'org.springframework.boot:spring-boot-starter-mail'
2.2 mail 전송을 위한 yml 파일 작성
application.yml
spring: mail: // host, port는 naver에서 정해준 값 host: smtp.naver.com port: 465 // 본인 naver 계정정보 삽입 username: 이메일@naver.com password: 비밀번호 //전송하기 위한 prop으로 ssl의 신뢰, 권한 등 사용허가 properties: mail.smtp.auth: true mail.smtp.ssl.enable: true mail.smtp.ssl.trust: smtp.naver.com
저는 Could not connect to SMTP host: smtp.naver.com, port: 465 등과 같은 오류가 발생했는데
mail.smtp.ssl.trust: smtp.naver.com 이 코드를 작성한 뒤 오류가 해결됐습니다.3 Mail 전송 및 확인
package com.example.demo; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Component; import javax.mail.internet.MimeMessage; @Component @RequiredArgsConstructor public class MailSenderRunner implements ApplicationRunner { private final JavaMailSender mailSender; @Value("${spring.mail.username}") private String from; @Override public void run(ApplicationArguments args) throws Exception { MimeMessage m = mailSender.createMimeMessage(); MimeMessageHelper h = new MimeMessageHelper(m,"UTF-8"); h.setFrom(from (앞서 설정한 본인의 Naver Email)); h.setTo("받는분의 Email"); h.setSubject("테스트메일"); h.setText("메일테스트"); mailSender.send(m); } }
코드를 모두 작성한 후 프로젝트를 실행시키면 메일이 발송되는 것을 아래와 같이 확인할 수 있습니다.