Backend/NodeJS

[node] nodemailer를 이용해 메일 전송 하기

하우아유두잉 2020. 4. 13. 09:39

 

node.js에서 메일 전송 시스템을 구축해보자.

사실 시스템까진 아니고,, 회원 비밀번호 초기화 기능을 목적으로 사용할 예정이다.

 

node.js에선 nodemailer 모듈을 이용하면

단 코드 몇줄로 쉽게 기능을 구현 할 수 있다.

 


 

먼저 모듈을 설치하자.

npm install --save nodemailer

 

 

본인이 원하는 위치에 아래와 같은 코드를 작성하고 실행 하면 끝..

const nodemailer = require(`nodemailer`);

// nodemailer transport 생성
const transporter = nodemailer.createTransport({
	service: `gmail`,
	port: 465,
	secure: true, // true for 465, false for other ports
	auth: { 
		user: `보내는사람메일주소`,
		pass: `앱비밀번호`,
    },
});
const emailOptions = { // 옵션값 설정
	from: `보내는사람메일주소`,
	to: 받는사람메일주소,
	subject: `비밀번호 초기화 이메일입니다.`,
	html: `내용`,
};

// 전송
transporter.sendMail(emailOptions, (err, res) => {
	if (err) {
		console.log(`failed... => `, err);
	} else {
		console.log(`succeed... => `, res);
	}
	transporter.close();
});

 

 

 

 

 


 

만약 메일 전송에 실패를 한다면

gmail의 경우 보안 설정을 해줘야한다.(아래 링크)

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

https://myaccount.google.com/lesssecureapps

https://myaccount.google.com/lesssecureapps

 

앱 비밀 번호를 설정해주자.

 

먼저 구글 계정 설정 콘솔에서 보안 탭으로 이동하자.

앱 비밀번호 클릭

 

아래 화면과 같이 설정하고 생성을 클릭하자.

 

 

 

발급된 비밀 번호를 복사해 사용 하면 된다.

 

auth.pass에 적용!