![[Tistory] Spring Boot - 이메일 인증 gmail 설정](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255BTistory%255D%2520Spring%2520Boot%2520-%2520%25EC%259D%25B4%25EB%25A9%2594%25EC%259D%25BC%2520%25EC%259D%25B8%25EC%25A6%259D%2520gmail%2520%25EC%2584%25A4%25EC%25A0%2595%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3DCoding_study&w=2048&q=75)
1. 구글 이메일 설정
구글 보안 수준이 낮은 앱의 엑세스 -> 테스트용 새로운 아이디를 만들었다 주의할점은 2단계 인증이 되어있으면 안됨 Google계정관리 - 보안 - 보안 수준이 낮은 앱의 엑세스 - 사용설정하기

해당 설정은 2022년 05월부터 막혔다.

이걸 써보자
2. SMTP 계정 설정
- 로그인 후 좌측 보안 탭으로 들어가서 스크롤을 내려서 보안 클릭
- 'Google에 로그인'에서 2단계 인증 시작하기를 선택


3. 'Google에 로그인 하는 방법' 섹션에서 2단계 인증 클릭.
- 2단계 인증 설정이 되어있지 않다면 설정해주자.
- 설정 후 2단계 인증을 다시 클릭하면, 여러 섹션이 뜬다.


2단계 인증을 거친다면 16자리 앱 비밀번호를 알려준다. 꼭 따로 저장해야함.
→ 이 비밀번호가 gmail 비밀번호 대신 사용하게 될 비밀번호에요!!
4. SMTP 설정
우선 SMTP을 사용할 계정 설정을 해줘야 해요. 저는 구글을 활용했어요.
- 우선 SMTP을 사용할 계정 설정을 해줘야 해요. 저는 구글을 활용했어요.
- 구글 로그인 → 구글 계정 관리 → 검색창에 “앱 비밀번호” 검색
안되길래 검색해보니 최하단 쪽에 '앱 비밀번호' 섹션에서 클릭해라 뭐 검색해라 등등 있지만 다 해봐도 눈 씻고 찾아봐도 없어서 검색창에 앱 비밀번호 쳤는데 없어서 app치니까 뜸 .. 휴 ㅜㅜ
(❗️만약 앱 비밀번호가 나오지 않는다면? 2단계 인증을 해야 하니 위의 과정을 거치고 오면 됨!!)


이 상태에서 멈춘 다음에 서버로 ㄱㄱ
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
이메일 설정에는 두 가지 방식이 있어요.
- Config 파일을 만들어서 설정하기
- application.yml 을 활용하여 외부 구성을 설정하기
그 이유는 다음과 같아요. (하지만 yml 파일 하나로 퉁침)
- 외부 구성 분리: 설정을 외부 파일에 저장하면 애플리케이션의 설정을 프로그램 코드와 분리할 수 있습니다. 이것은 설정을 변경할 때 애플리케이션을 다시 컴파일하거나 다시 빌드할 필요 없이 설정을 업데이트할 수 있는 유연성을 제공합니다.
- 설정 관리 도구 통합: 외부 설정 파일을 사용하면 설정 관리 도구와의 통합이 쉬워집니다. 예를 들어, 환경변수 또는 구성 서버를 통해 설정을 관리하고 주입하는 것이 가능하며, 이것은 설정을 중앙에서 관리하고 변경 사항을 추적하기에 용이합니다.
- 가독성: YAML 또는 Properties 파일 형식은 사람이 읽기에 좀 더 가독성이 높습니다. 이것은 설정을 쉽게 검토하고 이해할 수 있게 해줍니다.
또한, 보안에 민감한 부분도 포함되어 있기에 yml 파일도 나누어서 관리했어요.
7. 이제 앱 비밀번호를 만들자



8. IMAP 엑세스 하기
- 구글 Gmail → 설정 → 전달 및 POP/IMAP → 아래 이미지처럼 설정 → 변경사항 저장 클릭


Share article