권한 에러 발생
Java 환경에서 메일 발송 기능을 구현 중 구글 계정을 변경하니 권한 관련 에러가 발생했습니다.
threw exception [Request processing failed; nested exception is org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465] with root cause
Error: Invalid login: 534-5.7.9 Application-specific password required. Learn more at
534 5.7.9 https://support.google.com/mail/?p=InvalidSecondFactor a5sm4135165pgl.41 - gsmtp
534 5.7.9 https://support.google.com/mail/?p=InvalidSecondFactor a5sm4135165pgl.41 - gsmtp
포트나 비밀번호가 잘못된 거라고 생각해 확인해봐도 메시지는 동일합니다.
찾아보니 구글 계정을 2단계 보안(OTP 등)으로 설정해놓은 경우 외부 앱에서 접근이 안 되는 오류라고 합니다.
외부 앱에서 2단계 인증을 거칠 수 없으니 구글 계정 설정에서 앱용 비밀번호를 발급받아 적용하면 됩니다.
App passwords 발급 방법
Google.com > 우측 상단 프로필 클릭 > Google 계정 관리 > 좌측 탭에서 보안 > Google에 로그인 > 앱 비밀번호
메일, Windows 컴퓨터로 앱 및 기기 선택 > 생성 버튼 클릭
생성된 암호를 사용하면 정상적으로 메일이 발송되는 걸 확인할 수 있습니다.
메일 설정 확인
동일한 에러가 계속 발생한다면 Gmail 설정이 잘못되었을 수 있습니다.
IMAP를 사용으로 설정하고 포트 및 도메인이 맞는지 확인하면 됩니다.
Gmail 메인 페이지 > 우측 상단 톱니바퀴 > 모든 설정 보기
1. 전달 및 POP/IMAP 탭에서 IMAP 사용으로 체크
2. 설정 방법 > 2단계: 이메일 클라이언트의 SMTP와 기타 설정 변경에서 포트 및 도메인 확인
'Java' 카테고리의 다른 글
[Java] 자바 제네릭(Generic)이란, 제네릭 쉽게 이해하기 (0) | 2023.08.08 |
---|