Skip to content
On this page

2023년 08월 15일

수정하기
문서 생성 2023-08-15 23:24:15 최근 수정 2023-08-15 23:31:50
🇰🇷

📚 오늘 도전하고, 배운 것

nodemailer라는 라이브러리를 사용해봤다.
전에는 그냥 회사 프레임워크로 메일을 전송했는데 Node.js에서는 nodemailer를 많이 사용하는 것 처럼 보인다.

사용법은 매우 간단했다.

const transporter = nodemailer.createTransport({
service: 'gmail',
secure: true,
auth: {
user: this.configService.get<string>('EMAIL_ADDRESS'), // 발송자 이메일 주소
pass: this.configService.get<string>('EMAIL_PASSWORD'), // 발송자 이메일 비밀번호
},
});
const mailOptions = {
from: this.configService.get<string>('EMAIL_ADDRESS'),
to: email,
html: renderMailContent(username, redirectUrl),
subject: 'Password help is arrived!',
};
transporter.sendMail(mailOptions, (error) => {
if (error) {
throw new InternalServerErrorException(error);
}
return;
});

간단했지만 username과 password가 정확한데도 다음 오류가 나타났다.

Username and Password not accepted.

stackoverflow에 찾아보니 작년 5월부터 2단계 인증을 사용하고 "앱 비밀번호"를 사용해야 하는 방식으로 바뀌었다고 한다.
아무리 환경 변수라고 해도 해당 계정 비밀번호를 바로 연결하는게 찜찜했는데 다해잉었다.

"앱 비밀번호"는 Google 계정 > 보안 > 2단계 인증 > 2단계 인증 설정 후 2단계 인증 페이지 하단 앱 비밀번호 를 선택하면 설정할 수 있다.

16자리 비밀번호가 생성된다. 이걸 auth.pass에 전달하면 된다.

🤔 학습하면서 궁금하거나 어려웠던 점

🌅 내일은 무엇을?

✒️ log

  • 30분 뛰었다. 이제 날씨가 많이 선선해져서 좋다.

LINKS TO THIS PAGE