npm : Nodemailer
Nodemailer 공식 홈페이지
이메일 전송을 위해 Node.js 애플리케이션에서 쉽게 메일을 전송할 수 있도록 도와주는 모듈
Nodemailer 외에도 다양한 라이브러리 존재
Google 계정 로그인
Google 계정 설정 페이지 이동
보안 탭 2단계 인증 활성화
앱 비밀번호 발급
Nodemailer 설치
yarn add nodemailer
공식 홈페이지 예제 확인
코드 작성
// const nodemailer = require("nodemailer");
import nodemailer from "nodemailer";
// async..await is not allowed in global scope, must use a wrapper
// 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
// },
// });
const transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: GOOGLE_MAIL_AUTH_ID,
pass: GOOGLE_MAIL_AUTH_PW,
}
})
// 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
// });
const info = await transporter.sendMail({
from: GOOGLE_MAIL_SENDER,
to: email,
subject: "subject line",
text: "plain text body",
html: "<div>hello world</div>"
})
//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...