DevBoi

[Spring] Smtp 서버 연동 본문

Develop/[Spring]

[Spring] Smtp 서버 연동

HiSmith 2023. 11. 29. 22:09
반응형

필요에 의해서 알림을 메일로 전송해야하는 기능을 개발해야해서

gmail smtp 서버를 연동해보려고한다.

 

<구글 설정>

1. Google 보안 설정 진행 하기, 2단계 인증하기

https://myaccount.google.com/u/0/security?pli=1

 

Google 계정

 

myaccount.google.com

 

2. 앱 비밀번호 설정

 

 

3. 앱만들기를 하면 자동으로 비밀번호를 알려준다.

 

<스프링 설정>

 

의존성 주입

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

 

설정 파일

spring:
  mail:
    host: smtp.gmail.com
    port: 587
    username: ${MAIL_USERNAME}
    password: ${MAIL_PASSWORD}
    properties:
      mail:
        smtp:
          socketFactory.class: javax.net.ssl.SSLSocketFactory
          auth: true
          starttls:
            enable: true

 

서비스 코드

  public void doEmail(AlarmRequest request){
    boolean result = false;

    MimeMessagePreparator msg = new MimeMessagePreparator() {
      @Override
      public void prepare(MimeMessage mimeMessage) throws Exception {
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
        mimeMessageHelper.setTo(request.getEmailAddress());
        mimeMessageHelper.setSubject(request.getEmailSubject());
        mimeMessageHelper.setText(request.getMsg(), true);
      }
    };
    try {
      javaMailSender.send(msg);
      log.info("javaMailSender.send");
      result = true;

    } catch (Exception e) {
      e.printStackTrace();
    }
  }

 

 

간단하게 위 처럼 구현하면, google 제공 무료 smtp 서버를 통해 메일을 발송 할 수 있다.

반응형