개발자 블로그

node mailer - Invalid login: Username and Password not accepted 해결 본문

프로그래밍/Node.js

node mailer - Invalid login: Username and Password not accepted 해결

로이드.Roid 2022. 7. 11. 14:06

내 앱에서 모니터링이 필요한 부분에 nodemailer를 사용해서 gmail로 알림을 받고 있었다. 기존에는 아무런 문제 없이 잘 동작하고 있었는데, 어느 순간부터 메일이 발송되지 않고 있었다.

그래서 에러 로그를 찾아보니 아래와 같은 로그가 찍혀있었다. (민감할 수 있을 것 같은 내용은 삭제 또는 수정해서 원문과는 조금 다를 수 있다.)

 Send mail error:  { Error: Invalid login: Username and Password not accepted. Learn more at
  https://support.google.com/mail/?p=BadCredentials - gsmtp
     at SMTPConnection._formatError (myprojects/node_modules/nodemailer/lib/smtp-connection/index.js:774:19)
     at SMTPConnection._actionAUTHComplete (myprojects/node_modules/nodemailer/lib/smtp-connection/index.js:1513:34)
     at SMTPConnection._responseActions.push.str (myprojects/node_modules/nodemailer/lib/smtp-connection/index.js:540:26)
     at SMTPConnection._processResponse (myprojects/node_modules/nodemailer/lib/smtp-connection/index.js:932:20)
     at SMTPConnection._onData (myprojects/node_modules/nodemailer/lib/smtp-connection/index.js:739:14)
     at TLSSocket.SMTPConnection._onSocketData.chunk (myprojects/node_modules/nodemailer/lib/smtp-connection/index.js:189:44)
     at emitOne (events.js:116:13)
     at TLSSocket.emit (events.js:211:7)
     at addChunk (_stream_readable.js:263:12)
     at readableAddChunk (_stream_readable.js:250:11)
   code: 'EAUTH',
   response: 'Username and Password not accepted. Learn more at https://support.google.com/mail/?p=BadCredentials     - gsmtp',
   responseCode: 535,
   command: 'AUTH PLAIN' }

로그에 찍혀있는 URL로 접속하면 아래와 같은 페이지로 연결된다.

https://support.google.com/mail/?p=BadCredentials 

 

다른 이메일 플랫폼을 통해 Gmail 확인하기 - Gmail 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

설명은 크게 도움이 안되고, 그냥 간단하게 설명하면, 아마도 과거에 구글로부터 메일을 한 통 받았을꺼다. (나도 메일 받고 그냥 무시하고 넘겼었다..-_-;;)

그러니깐 구글은 사실 이미 나한테 통지를 했었다.. 내가 그냥 별 생각 없이 아무런 조치도 안했던거지..

 

뭐, 우리한테 중요한건 해결 방법이니깐..

다행히도 약간의 설정만 해준다면 gmail을 사용한 nodemailer는 계속해서 사용할 수 있다.

  1. 2단계 인증 사용
  2. 앱 비밀번호 생성

이렇게 두 단계만 해주면 된다.

해당 설정은 아래 링크에서 변경 가능하다.

https://myaccount.google.com/security

 

Google 계정

보안 계정을 안전하게 보호하기 위해 보안 설정을 검토 및 조정하고 권장사항을 받아보려면 계정에 로그인하세요.

myaccount.google.com

 

그리고 관련해서 도움말이 필요하다면, 아래 링크를 참고하자.

https://support.google.com/accounts/answer/185833

 

앱 비밀번호로 로그인 - Google 계정 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

이렇게 앱 비밀번호를 생성했다면, 기존 node.js 코드에서 패스워드만 앱 비밀번호로 변경해주면 된다. 서비스를 재시작 하는 것은 잊지말고!

Comments