개발/Node.Js

Nodejs 이메일 전송 구현(Nodemailer)

알 수 없는 사용자 2021. 1. 1.
반응형

Nodemailer 모듈을 사용하면 Nodejs에서 이메일 전송 기능을 구현할 수 있다.

우선 Nodemailer를 설치하자.

 

npm i nodemailer

Gmail을 사용하면 하루 500통의 메일까지 전송이 가능하다고 한다.

사용을 위해서는 설정이 필요하다.

 

www.google.com/settings/security/lesssecureapps

 

위 주소로 접속하여, 보안 수준이 낮은 앱의 액세스를 허용해 준다.

 

Node에서 메일 전송 기능을 구현한다.

router/mail.js

 

const express = require('express');
const router = express.Router();
const nodemailer = require('nodemailer');

router.post('/send', function(req, res, next){
    //메일 전송 SMTP 설정
    let transporter = nodemailer.createTransport({
        service: 'gmail',
        host: "smtp.email.com",
        port: 587,
        secure: false,
        auth: {
          user: "user@gmail.com", //gmail 주소
          pass: "password" //gmail 계정 password
        }
      });

      //메일 내용 설정
      let mail = {
        from: req.body.email, //발송인 메일 주소
        to: "user@gmail.com", //수신자 메일 주소
        subject: "Message title", //메일 제목
        text: req.body.message //메일 내용
      };
      
      //메일 전송
      transporter.sendMail(mail, function(error, info){
        if(error){
            res.send(error)
        }else{
            console.log('메일이 발송되었습니다. ',info.messageId );
            res.redirect('/');
        }
      });
})

  module.exports = router ;

실제 전송 테스트를 해 본다

 

gmail에 접속하여 메일이 전송되었는지 확인한다.

메일이 성공적으로 전송되었다.

반응형

댓글

💲 추천 글