사용자가 회원가입 시, 입력한 이메일이 유효한지 검증하는 상황 혹은 사용자에게 임시 비밀번호를 전달하는 경우 등등 서버 측에서 사용자에게 이메일을 보내야하는 경우가 존재합니다! 이때, Node에서 사용할 수 있는 유용한 모듈이 바로 Nodemailer
입니다 📧
공식사이트 에서 Nodemailer
의 특징을 살펴볼 수 있는데요! 우선, Node.js 애플리케이션에서 메일을 쉽게 보낼 수 있도록 도와주는 모듈이라고 합니다.
SMTP is the main transport in Nodemailer for delivering messages.
SMTP is also the protocol used between different email hosts, so its truly universal.
Almost every email delivery provider supports SMTP based sending, even if they mainly push their API based sending.
APIs might have more features but using these also means vendor lock-in
while in case of SMTP you only need to change the configuration options to replace one provider with another and you’re good to go.
npm i nodemailer
transporter
객체 생성let transporter = nodemailer.createTransport(configuration[, mail options])
transporter.sendMail(data[, callback])
const nodemailer = require('nodemailer')
async sendMail(email) {
try {
const mailConfig = {
service: 'Naver',
host: 'smtp.naver.com',
port: 587,
auth: {
user: process.env.MAIL_EMAIL,
pass: process.env.MAIL_PASSWORD
}
}
let message = {
from: process.env.MAIL_EMAIL,
to: email,
subject: '이메일 인증 요청 메일입니다.',
html: '<p> 여기에 인증번호나 token 검증 URL 붙이시면 됩니다! </p>'
}
let transporter = nodemailer.createTransport(mailConfig)
transporter.sendMail(message)
} catch (error) {
console.log(error)
}
}
함수를 async로 만들었는데 await을 안쓰길래 보니까 sendMail 함수가 Promise 함수군요