스프링 부트 환경에서 메일을 발송해볼게요.
관리자 계정으로 서버의 상태를 전송한다던가 이메일 인증 메일을 보낸다던가할 때 지금 포스팅한 내용대로 적용하실 수 있을 것 같네요.
준비사항으로는 본인의 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
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 객체를 사용하면 되요.
아래와 같은 필드들이 있어요. 다 아는 단어들일거에요.
국내에서 사용하는 대표적인 메일 계정들로 메일을 발송했어요.
어떤 메일을 쓰던 거의 같거나 비슷비슷해요.
다른 메일을 연동할 때도 정보만 다르니 참고하시면 좋을 것 같습니다.
'Backend > Spring' 카테고리의 다른 글
No identifier specified for entity (JPA) (0) | 2020.01.02 |
---|---|
MyBatis vs JPA 차이, 사용후기, 장단점 (0) | 2019.12.20 |
Spring Boot 파일 다운로드 (Controller) (8) | 2019.12.12 |
자바 파일 복사 (+ Spring) (0) | 2019.12.04 |
Spring Boot JUnit 5 MockMvc Test (0) | 2019.11.30 |