반응형
사이드 프로젝트 중 메일 인증을 통한 유저 회원가입 구현이 필요하여 구글 메일 서버를 이용한 메일 발송에 대해 적어보고 후에 잊어버렸을 경우 다시 보기 위해 정리하고자 한다.
회원 인증에는 실명인증 및 인증서 인증 여러가지가 있는데 소규모 프로젝트에서는 메일 인증이 제일 간단한 것 같다.
Spring을 활용하면 다음과 같이 간단히 설정을 진행할 수 있다.
1. Application yml 작성하기 (https://support.google.com/a/answer/176600?hl=en)
spring:
mail:
protocol: smtp
host: smtp.gmail.com
port: 587
username: ${user.name}
password: $[user.password}
default-encoding: utf-8
properties:
mail:
smtp:
starttls:
enable: true
auth: true
2. username과 password 입력하기
username은 구글 가입 계정을 뜻하며 password는 구글 가입 계정의 비밀번호인 줄 알았으나
password는 단순히 계정의 비밀번호가 아니었다. (앱 비밀번호였다.)
그럼 앱 비밀번호를 발급받아보자. 해당 사이트에 들어간 후 원하는 구글 계정을 로그인 한다.
https://myaccount.google.com/u/2/security?hl=ko&pageId=none
보안 페이지를 보면 다음과 같이
"Google에 로그인"과 밑에 2단계 인증을 확인 할 수 있다.
2단계 인증을 본인의 스마트폰이나 테블릿 등으로 진행하고 나면 앱 비밀번호를 설정할 수 있다.
앱 선택 그리고 기기선택을 설정한 후 생성을 누르게 되면
다음과 같이 앱 비밀번호가 자동으로 생성된 후 해당 비밀번호를 활용하여 진행하면 된다.
생성된 앱 비밀번호를 application yml에 입력후 간단한 메일 전송 로직을 작성하여 실행하면 정상적으로 메일이 발송된다.
fun sendAuthCode(address: String) {
try {
val code = generateAuthCode()
val email = SimpleMailMessage()
email.subject = "테스트 이메일 인증"
email.text = "이메일 인증 코드는 ${code}입니다"
email.setTo(address)
sender.send(email)
} catch (e: Exception) {
logger.error("이메일 전송에 실패했습니다. ${e.message}")
throw Exception("이메일 전송에 실패했습니다. ${e.message}")
}
}
끝.
반응형
'개발 지식 > Spring Framework' 카테고리의 다른 글
[Spring] Coroutine Suspend Cache Hit 가 되지 않다. (0) | 2023.02.11 |
---|---|
[Spring] Caffeine Cache Config 설정하기 (0) | 2023.02.05 |
[Reactive Mongo] Reactive MongoDB QueryDSL 버전 충돌 (0) | 2022.08.22 |
[Test] MongoDB 단위 테스트(Unit Test) 작성해보기 (4) | 2022.06.06 |
[Spring] SpringBoot + WebFlux + Kotlin + ReactiveMongo 프로젝트 생성 (1) | 2022.05.01 |
댓글