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에 적용!