설모의 기록

nodemailer 모듈 사용하기 본문

언어/Javascript

nodemailer 모듈 사용하기

HA_Kwon 2018. 1. 13. 17:28

  이번 포스트는 이메일로 메일을 보낼 때 사용하는 nodemailer 모듈에 사용법에 대해 알아보겠습니다. 보통 이메일 인증할 때나 비밀번호 찾기 기능을 구현할 때 이메일로 비밀번호를 보냅니다. node.js 에서는 nodemailer 라는 모듈을 사용해 메일을 보낼 수 있습니다.


우선 모듈부터 깔아볼까요?

$ npm install nodemailer


이후, 파일 상단에서 아래와 같이 모듈을 선언합니다.

const nodemailer = require('nodemailer');


  이제 메일을 보내볼까요? 저는 구글계정을 사용해 메일을 보내는 것을 예시로 사용하겠습니다. 구글계정을 사용해 nodemailer 모듈을 사용하려고 할 때는 설정해야할 것이 있습니다. 이 모듈을 사용하기 위해서는 2단계 인증 을 허용하고, 보안 수준이 낮은 앱의 접근을 허용 을 사용해야 메일을 보낼 수 있습니다. 그치만 요즘같은 세상에 보안을 풀기는 너무 불안하죠? 그래서 다른 방법으로는  앱 비밀번호 생성하기가 있습니다. 앱 비빌번호 페이지로 이동하시면 아래와 같은 화면을 보실 수 있습니다.

  위의 페이지에서 앱을 선택하고 기기를 선택하시면 생성되는 16자리 비밀번호가 나올겁니다. 이제 nodemailer 모듈을 사용해 메일을 보내려고할 때 아이디와 생성된 비밀번호를 사용하면 됩니다. 이제 코드를 구현해볼까요?


1
2
3
4
5
6
let transport = nodemailer.createTransport({
    service: "Gmail",
    auth: {
        user: "아이디",
        pass: "16자리_비밀번호"
});

  먼저 본인의 계정을 입력해 transport 를 설정합니다.


1
2
3
4
5
6
7
8
let mailOption = {
    from: "보내는사람",
    to: "받는사람_이메일",
    subject: "제목입니다.",
    html: "html을 이용해 메일을 보낼때 <br> 이용합니다.",
    text: "일반 텍스트를 보낼 때 이용합니다.",
    streamSource: fs.createReadStream('파일경로')
};

  이 mailOption 객체는 보낼 메일의 정보를 가지는 객체입니다. 보낼 내용이 텍스트인지, html 문서 형식인지, 파일 자체를 보낼건지에 따라 html, text, streamSource 태그를 알맞게 선택해 사용해야 합니다. streamSource 태그를 사용할 때는 fs 라는 모듈을 이용해 파일을 불러와 값을 설정해야 하는데요. nodemailer 모듈을 설치하고 선언했던 것 처럼 아래와 같이 추가하면 됩니다.


// 모듈 설치
$ npm install nodemailer


// 파일 상단에서 모듈 선언
const fs = require('fs');


  이렇게 transport, mailOption 객체를 설정한 후 아래 코드를 참고해 원하는 코드를 구현하시면 됩니다.

1
2
3
4
5
6
7
transport.sendMail(mailOption, function (error, info) {
    if (error) {
        console.log("nodemailer error : " + error);
    } else {
        // 메일 보낸 후 할 일들
    }
});



이상으로 nodemailer 모듈 사용법에 대해 알아보았습니다. ;)

'언어 > Javascript' 카테고리의 다른 글

[ES6] var, let, const 변수 선언  (0) 2018.02.01
jsonwebtoken 모듈  (0) 2018.01.16
async.waterfall() 메소드  (1) 2018.01.08
bcrypt-nodejs 모듈 사용하기  (0) 2018.01.08
Map 과 Set  (0) 2018.01.04
Comments