ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.