[NodeJS] nodemailer 네이버 계정으로 이용하기

nakkim·2022년 4월 29일
1

https://nodemailer.com/about/
사용을 위한 코드 틀은 위 사이트에 있다.

먼저, 내 메일함 환경설정에서 POP3/SMTP를 사용함으로 변경한다.
해당 페이지에 아래 정보가 적혀있다.

  • SMTP 서버명 : smtp.naver.com
  • SMTP 포트 : 465, 보안 연결(SSL) 필요
import mailer from 'nodemailer';

...

// create reusable transporter object using the default SMTP transport
const transporter = mailer.createTransport({
	service: 'naver',
	host: 'smtp.naver.com',  // SMTP 서버명
	port: 465,  // SMTP 포트
	auth: {
		user: process.env.NODEMAILER_USER,  // 네이버 아이디
		pass: process.env.NODEMAILER_PASS,  // 네이버 비밀번호
	},
});

const mailOptions = {
	from: process.env.NODEMAILER_USER,  // 네이버 아이디
	to: req.body.email,  // 수신자 아이디
	subject: '제목',
	html: emailTemplate,
};

// 두번째 인자로 콜백 함수를 넣어주면 await x
transporter.sendMail(mailOptions, function (err, info) {
	if (err) {
		console.log(err);
	} else {
		console.log('Successfully Send Email.', info.response);
		transporter.close()
	}
});

위 코드의 mailOptions 부분에서 from에 네이버 아이디를 정확하게 적지 않으면 에러가 뜬다!
(참고: https://www.massmailsoftware.com/smtp/554-5-7-1/)

원래 구글로 사용했었는데,
5/30부터 계정을 안전하게 보호하기 위해 Google은 사용자 이름과 비밀번호만 사용하여 Google 계정에 로그인하도록 요청하는 서드 파티 앱 또는 기기의 사용을 더 이상 지원하지 않습니다.
라고 메일이 왔길래 네이버로 급하게 바꿔봤다.
구글로 사용할 때는 from에 사이트명을 써둬도 잘 동작했는데 네이버에서는 아이디를 정확하게 적지 않으면 오류가 나는 모양이다...

profile
nakkim.hashnode.dev로 이사합니다

0개의 댓글