SpringBoot-개인 프로젝트 하면서 공부하기(2)_메일전송구현

개미는뚠뚠·2023년 7월 15일
0

SpringBoot

목록 보기
3/3
post-thumbnail

지난 시간 UI를 제작하고 식당메뉴 api까지 만들었다. 이번에 진행한 작업은 문의사항 내용을 form양식에 작성하면 담당자 e-mail로 실제 전송되는 기능을 구현하는 것이다. 내용이 간결하여 빠르게 설명하겠다.

FRONT

  • 화면은 위와 같은데 아이콘은 가볍게 무시해주길...암튼 저렇게 문의 사항에 관련된 간단한 메일을 작성해서 send를 누르면 ajax를 통해 back으로 위와 같은 데이터를 전송한다.

Back

pom.xml

  • 일단 메일 기능을 구현하기 위해 필요한 spring-boot-starter-mail을 pom.xml에 추가해준다.

이후 controller, vo, service 등을 생성하였고, 메일 전송에 관련된 내용은 service에 구현하였다.

controller

  • front에서 보내준 파라미터(클라이언트가 작성한 내용)를 vo에 담아주고, 해당 기능을 처리할 service를 호출한다.

service

이번 메일 전송기능은 JavaMailSender 을 사용하였다. 특징은 간단히 다음과 같다.

  • 메일 발송 기능을 위한 MailSender 인터페이스 제공
  • SimpleMailMessage(메일 제목, 단순 텍스트 내용)를 전달받아 메일을 발송하는 기능을 정의

  1. 코드 순서대로 설명하자면 메일 기능을 수행할 JavaMailSender를 호출해주었다.
  2. 이후 FROM_ADDRESS 라는 고정된 수신자(담당자) 이메일을 지정하였다.
  3. SimpleMailMessage를 message로 정의한 뒤 vo에 지정한 파라미터 값들을 담아주었다(중간에 messagejsetSubject와 message.setText 부분은 내가 임의대로 추가하였다.)
  4. 이후 mailSender.send()를 통해 해당 최종 메일 전송을 수행한다.

결과 및 추가설정

메일 도착~~으로 끝나는 것이 아니다. 해당 기능을 구현하기 위해서는 두가지 추가 설정이 필요하다. 그 내용은 아래와 같다.

  1. src/main/resources의 application.poperties에 위와 같은 설정을 추가한다. 메일 전송을 위한 smtp 서버 관련 내용 및 계정 등..

  1. 네이버메일 - 환경설정 내부에서의 설정을 위와 같이 맞춰준다.


이렇게 메일 전송 구현에 포스팅을 마치겠다. 메일 정리 좀 해야겠다😒

0개의 댓글