-
[Node.js] 'nodemailer'과 gmail 연동 에러코딩/Node.js 2021. 12. 24. 23:50
최근 프로젝트에서 회원가입시 인증코드를 보내야 해서 nodemailer와 gmail을 활용해 인증메일을 보내도록 했었습니다. 근데 최근 구글에서 계정에 2단계인증을 적용하라고해 별 생각 없이 했는데 이게 nodemailer를 사용하던 중에 장애물이 되어 버렸습니다. 2단계 인증을 적용할 시, gmail의 SMTP 설정에서 보안 수준이 낮은 앱의 액세스 허용이 불가능합니다. 다시 말해, nodemailer가 제 gmail에 액세스하지못하고 에러를 뱉는 것이지요.
이때, 아래와 같은 에러가 뜹니다.
Error: Invalid login: 535-5.7.8 Username and Password not accepted.그래서 저는 gmail을 새로 만들고 다시 설정을 해주었습니다.
https://myaccount.google.com/lesssecureapps
로그인 - Google 계정
하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인
accounts.google.com
https://accounts.google.com/DisplayUnlockCaptcha
로그인 - Google 계정
하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인
accounts.google.com
새로만든 구글 계정으로 로그인 한 이후에 저 두 링크에 들어가서 허용해주시면 됩니다.
참고적으로, nodemailer의 createTransport 설정 코드 보여드리겠습니다.
const transporter = createTransport({ service: "Gmail", auth: { user: "my email", // 구글 이메일 pass: "my password", //비밀번호 }, tls: { rejectUnauthorized: false, }, });