[NodeJs] nodemailer 모듈 이용하기

이동엽·2022년 8월 3일
0

nodejs

목록 보기
1/1

NodeJs를 이용할 때, 메일을 보내는 기능을 가진 nomdemailer 모듈을 소개한다.

프로젝트 세팅

$ Express [프로젝트 이름]
$ npm i
$ npm i nodemailer

위 명령어들을 정상적으로 수행했다면, 기본 세팅은 완료되었습니다.


  • config 디렉토리를 만들고, 아래에 senderInfo.json을 작성합니다.
{
	"user": "본인의 이메일",
	"pass": "이메일 비밀번호" 
}

  • 이미 만들어진 routes 디렉토리 아래에, mail.js를 작성합니다.
    • 현재 작성자는 보내는 이의 메일을 naver 계정을 이용합니다.
    • 다른 플랫폼을 이용할 경우, servicehost 부분을 수정하여야 합니다.
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를 작성합니다.
    • client로부터 메일 주소를 받아, 메일을 보내는 부분입니다.
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을 이용해 결과를 확인합니다.


  • 실행 결과


자세한 내용을 원하시면 공식 문서를 확인하세요.

profile
백엔드 개발자로 등 따숩고 배 부르게 되는 그 날까지

1개의 댓글

comment-user-thumbnail
2022년 8월 3일

정말 유용한 정보입니다 ! 참고하겠습니다.

답글 달기