Java

Java 메일 전송 시 권한 에러 해결방법(Sending the email to the following server failed : smtp.gmail.com:465)

tmkimm 2022. 11. 1. 15:49

권한 에러 발생

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

 

포트나 비밀번호가 잘못된 거라고 생각해 확인해봐도 메시지는 동일합니다.

 

찾아보니 구글 계정을 2단계 보안(OTP 등)으로 설정해놓은 경우 외부 앱에서 접근이 안 되는 오류라고 합니다.

외부 앱에서 2단계 인증을 거칠 수 없으니 구글 계정 설정에서 앱용 비밀번호를 발급받아 적용하면 됩니다.

 

 

App passwords 발급 방법

Google.com > 우측 상단 프로필 클릭 > Google 계정 관리 > 좌측 탭에서 보안 > Google에 로그인 > 앱 비밀번호

메일, Windows 컴퓨터로 앱 및 기기 선택 > 생성 버튼 클릭

생성된 암호를 사용하면 정상적으로 메일이 발송되는 걸 확인할 수 있습니다.

 

메일 설정 확인

동일한 에러가 계속 발생한다면 Gmail 설정이 잘못되었을 수 있습니다.

IMAP를 사용으로 설정하고 포트 및 도메인이 맞는지 확인하면 됩니다.

 

Gmail 메인 페이지 > 우측 상단 톱니바퀴 > 모든 설정 보기

1. 전달 및 POP/IMAP 탭에서 IMAP 사용으로 체크

2. 설정 방법 > 2단계: 이메일 클라이언트의 SMTP와 기타 설정 변경에서 포트 및 도메인 확인