-
Spring boot 로 메일 보내기Spring 2021. 3. 4. 22:21
스프링 부트로 메일을 보내기 위해서는 다음과 같이 gradle에 라이브러리를 넣어주어야 한다.
implementation 'org.springframework.boot:spring-boot-starter-mail'
Gmail SMTP Server을 사용할 건데 구글 계정만 있으면 무료로 발송할 수 있다. 사용하려면 아래와 같이 설정을 해주어야 한다.
application.yml에는 다음과 같이 추가해준다.
spring: mail: host: smtp.gmail.com port: 587 username: [ 자신의 구글 이메일 ] password: [ 자신의 구글 비밀번호 ] properties: mail: smtp: auth: true starttls: enable: true
이제 메일을 발송해보자
SimpleMailMessage를 이용해서 간단한 텍스트 메일을 발송해볼 건데
@RequiredArgsConstructor @Service public class EmailService { private final JavaMailSender mailSender; public void mailSend (String to, String sub, String text){ SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(sub); message.setText(text); mailSender.send(message); } }
SimpleMailMessage에서 To는 받는 사람, Subject는 메일 제목, Text는 메일 본문을 뜻한다.
여기서 From도 설정할 수 있는데 설정을 해주지 않으면 위에 yml 파일에서 설정한 자신의 메일이 default가 된다.
이제 컨트롤러에서 메일을 보내보자
@PostMapping("/mail") public void sendMail(@RequestBody MailDto mailDto){ mailService.mailSend(mailDto.getEmail, mailDto.getSubject, mailDto.getText); }
@Data public class MailDto { private String email; private String subject; private String message; }
이러면 메일을 보낼 준비가 다 되었다.
Postman을 이용해서 메일을 보내보자!!
{ "email": "syh@gmail.com", "title": "test", "message": "test" }
이렇게 JSON 데이터를 넘겨주면 메일을 받을 수 있다.
**PS
참고로 자신의 메일 설정에서 보안 -> 보안 수준이 낮은 앱의 액세스를 허용해주어야 메일을 보낼 수 있다. (중요)
'Spring' 카테고리의 다른 글
스프링 웹 MVC 3일차 (0) 2021.03.13 스프링 웹 MVC 2일차 (0) 2021.03.11 스프링 웹 MVC 1일차 (0) 2021.03.09 스프링 시큐리티 흐름 (1) (0) 2021.03.04 스프링 Annotation 알아보기 (0) 2021.02.14