[Tistory] Spring Boot - 이메일 인증 gmail 설정

yuzu sim's avatar
Sep 20, 2024
[Tistory] Spring Boot - 이메일 인증 gmail 설정

1. 구글 이메일 설정

구글 보안 수준이 낮은 앱의 엑세스 -> 테스트용 새로운 아이디를 만들었다 주의할점은 2단계 인증이 되어있으면 안됨 Google계정관리 - 보안 - 보안 수준이 낮은 앱의 엑세스 - 사용설정하기
notion image
💡
해당 설정은 2022년 05월부터 막혔다.
notion image
💡
이걸 써보자
 

2. SMTP 계정 설정

  • 로그인 후 좌측 보안 탭으로 들어가서 스크롤을 내려서 보안 클릭
  • 'Google에 로그인'에서 2단계 인증  시작하기를 선택
notion image
notion image

3. 'Google에 로그인 하는 방법' 섹션에서 2단계 인증 클릭.

  • 2단계 인증 설정이 되어있지 않다면 설정해주자.
  • 설정 후 2단계 인증을 다시 클릭하면, 여러 섹션이 뜬다.
 
notion image
notion image
 
2단계 인증을 거친다면 16자리 앱 비밀번호를 알려준다. 꼭 따로 저장해야함.
→ 이 비밀번호가 gmail 비밀번호 대신 사용하게 될 비밀번호에요!!
 

4. SMTP 설정

우선 SMTP을 사용할 계정 설정을 해줘야 해요. 저는 구글을 활용했어요.
  • 우선 SMTP을 사용할 계정 설정을 해줘야 해요. 저는 구글을 활용했어요.
  • 구글 로그인 → 구글 계정 관리 → 검색창에 “앱 비밀번호” 검색
    • 안되길래 검색해보니 최하단 쪽에 '앱 비밀번호' 섹션에서 클릭해라 뭐 검색해라 등등 있지만 다 해봐도 눈 씻고 찾아봐도 없어서 검색창에 앱 비밀번호 쳤는데 없어서 app치니까 뜸 .. 휴 ㅜㅜ
(❗️만약 앱 비밀번호가 나오지 않는다면? 2단계 인증을 해야 하니 위의 과정을 거치고 오면 됨!!)
 
notion image
 
notion image
💡
이 상태에서 멈춘 다음에 서버로 ㄱㄱ
 

5. Build.gradle - 의존성 추가

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

6. yml - gmail 설정

spring: mail: host: smtp.gmail.com port: 587 username: compilemate2@gmail.com (새로 만든 내 구글 아이디 작성) password: 비밀번호 (앱 비밀번호에서 생성) properties: mail: smtp: starttls: enable: true required: true auth: true
이메일 설정에는 두 가지 방식이 있어요.
  1. Config 파일을 만들어서 설정하기
  1. application.yml 을 활용하여 외부 구성을 설정하기
그 이유는 다음과 같아요. (하지만 yml 파일 하나로 퉁침)
  1. 외부 구성 분리: 설정을 외부 파일에 저장하면 애플리케이션의 설정을 프로그램 코드와 분리할 수 있습니다. 이것은 설정을 변경할 때 애플리케이션을 다시 컴파일하거나 다시 빌드할 필요 없이 설정을 업데이트할 수 있는 유연성을 제공합니다.
  1. 설정 관리 도구 통합: 외부 설정 파일을 사용하면 설정 관리 도구와의 통합이 쉬워집니다. 예를 들어, 환경변수 또는 구성 서버를 통해 설정을 관리하고 주입하는 것이 가능하며, 이것은 설정을 중앙에서 관리하고 변경 사항을 추적하기에 용이합니다.
  1. 가독성: YAML 또는 Properties 파일 형식은 사람이 읽기에 좀 더 가독성이 높습니다. 이것은 설정을 쉽게 검토하고 이해할 수 있게 해줍니다.
또한, 보안에 민감한 부분도 포함되어 있기에 yml 파일도 나누어서 관리했어요.
 

7. 이제 앱 비밀번호를 만들자

notion image
notion image
notion image

8. IMAP 엑세스 하기

  • 구글 Gmail → 설정 → 전달 및 POP/IMAP → 아래 이미지처럼 설정 → 변경사항 저장 클릭
notion image
 
notion image
 
Share article

Coding_study