NodeJs를 이용할 때, 메일을 보내는 기능을 가진 nomdemailer 모듈을 소개한다.
$ Express [프로젝트 이름]
$ npm i
$ npm i nodemailer
위 명령어들을 정상적으로 수행했다면, 기본 세팅은 완료되었습니다.
config
디렉토리를 만들고, 아래에 senderInfo.json
을 작성합니다.{
"user": "본인의 이메일",
"pass": "이메일 비밀번호"
}
routes
디렉토리 아래에, mail.js
를 작성합니다.service
와 host
부분을 수정하여야 합니다.const nodemailer = require('nodemailer');
const senderInfo = require('../config/senderInfo.json');
// 메일발송 객체
const mailSender = {
// 메일발송 함수
sendMail: function (param) {
const transporter = nodemailer.createTransport({
service: 'naver', // 메일 보내는 곳
port: 587,
host: 'smtp.naver.com',
secure: false,
requireTLS: true ,
auth: {
user: senderInfo.user, // 보내는 메일의 주소
pass: senderInfo.pass // 보내는 메일의 비밀번호
}
});
// 메일 옵션
const mailOptions = {
from: senderInfo.user, // 보내는 메일의 주소
to: param.toEmail, // 수신할 이메일
subject: param.subject, // 메일 제목
text: param.text // 메일 내용
};
// 메일 발송
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
}
}
module.exports = mailSender;
routes
디렉토리 아래에, index.js
를 작성합니다.const express = require('express');
const router = express.Router();
const mailer = require('./mail');
router.get('/mail', (req, res) => {
const { email } = req.body;
let emailParam = {
toEmail: email, // 수신할 이메일
subject: 'New Email From 2dong', // 메일 제목
text: `2dong 회원님!` // 메일 내용
};
mailer.sendMail(emailParam);
res.status(200).send("성공");
})
module.exports = router;
이후 콘솔 창을 통해
npm start
명령어를 입력하여 서버를 실행한 후, postman을 이용해 결과를 확인합니다.
자세한 내용을 원하시면 공식 문서를 확인하세요.
정말 유용한 정보입니다 ! 참고하겠습니다.