[Node.js] Nodemailer 모듈을 이용하여 메일 보내기

임창현·2022년 12월 19일
0

Node.js

목록 보기
6/6
post-thumbnail

Node.js - Express를 이용해서 메일 전송하기.
nodemailer는 node 서버에서 메일을 보낼 수 있는 메일 전송 모듈이다.


설치

npm install nodemailer

절차

  1. SMTP 또는 다른 방법을 사용하여 Nodemailer transporter 생성한다.
  2. 메세지 옵션 세팅한다. (누가, 무엇을, 누구에게)
  3. 이전에 작성한 트랜스포터에 sendMail() 함수를 사용하여 메시지 객체를 전송한다.

Example

"use strict";
const nodemailer = require("nodemailer");

// async..await is not allowed in global scope, must use a wrapper
async function main() {
  // Generate test SMTP service account from ethereal.email
  // Only needed if you don't have a real mail account for testing
  let testAccount = await nodemailer.createTestAccount();

  // create reusable transporter object using the default SMTP transport
  let transporter = nodemailer.createTransport({
    host: "smtp.ethereal.email",
    port: 587,
    secure: false, // true for 465, false for other ports
    auth: {
      user: testAccount.user, // generated ethereal user
      pass: testAccount.pass, // generated ethereal password
    },
  });

  // send mail with defined transport object
  let info = await transporter.sendMail({
    from: '"Fred Foo 👻" <foo@example.com>', // sender address
    to: "bar@example.com, baz@example.com", // list of receivers
    subject: "Hello ✔", // Subject line
    text: "Hello world?", // plain text body
    html: "<b>Hello world?</b>", // html body
  });

  console.log("Message sent: %s", info.messageId);
  // Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>

  // Preview only available when sending through an Ethereal account
  console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
  // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
}

main().catch(console.error);

출처 : https://nodemailer.com/about/

profile
Hi there 👋 i'm backend developer

0개의 댓글