본문 바로가기

main/Node.js

[Node] 회원가입 시 이메일 발송하기 - 구글 계정으로 nodemailer 사용

mail.transport.js

const nodemailer = require('nodemailer')

const fromuser = '구글아이디 (이메일ㄴㄴ)'
const password = '구글비밀번호';

const transport = nodemailer.createTransport({
  service: 'gmail',
  host: 'smtp.gmail.com',
  port: 465,
  secure: true,
  auth: {
    user: fromuser,
    pass: password
  }
})

module.exports = transport

이메일을 보낼 모듈을 생성한다. 사용할 계정의 아이디와 비밀번호를 입력해 준다.

 

router.js

exports.sendEmail = (req, res) => {
  transport.sendMail({
    to: ["db9292@naver.com", "yourim92@daum.net"],
    subject: '회원가입을 환영합니다.',
    text: 'mail test content',
    html: `
      <h2>환</h2>
      <h1>영</h1>
    `
  })
  .then(res.send(200, '이메일 발송 성공'))
}

 

text와 html이 같이 넣어 봤는데 text는 안 나오는 것 같다. (혼자 있으면 나옴)

html이 잘 적용된 메일을 받아볼 수 있음 😶

 

 

구글 로그인 시 2단계 인증이 걸려있을 경우 다음과 같은 에러가 발생한다.

UnhandledPromiseRejectionWarning: Error: Invalid login: 535-5.7.8
Username and Password not accepted. Learn more at
...
 

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

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

support.google.com

 

이 방법대로 진행하고, 16자리 문자가 생성되면, 비밀번호 자리에 입력해주면 된다.