nodemailer는 node서버에서 메일을 보낼 수 있는 메일 전송 모듈입니다!
제가 진행하고 있는 프로젝트에서 건의/제보사항을 메일로 전달받기 위해 슬쩍 사용해보려고 해요~.~
npm install nodemailer
본인이 메일을 보낼 Gmail 계정정보를 입력합니다.
MAIL_USER = {Gmail 아이디}
MAIL_PASS = {Gmail 비밀번호}
저는 모든 개인정보를 .env파일에 보관하고 있어서 요렇게 작성해주고 mail.js에서 참조하는 방식으로 진행했슴니다
유출되면 안되는 정보이므로 어디에 작성하시던 꼭 .gitignore 하셔야해요..!!
저는 라이브러리 폴더(lib)를 따로 나눠 사용하고 있어서 lib폴더 하단에 mail.js를 만들어주엇서용
const nodemailer = require('nodemailer');
const sendMail = async (category, content, nickname) => {
let transporter = nodemailer.createTransport({
service: 'gmail',
host: 'smtp.gmail.com',
port: 587,
secure: false,
auth: {
user: process.env.MAIL_USER, // 보내는 메일 주소
pass: process.env.MAIL_PASS, // 보내는 메일 비밀번호
},
});
// 메일 옵션
await transporter.sendMail({
from: process.env.MAIL_USER,
to: process.env.MAIL_USER,
subject: `[FILL-IN Noti] ${category} 제보 // 메일 제목
html: `
<h3>FILL-IN에서 새로운 건의/제보가 들어왔어요.</h3>
<hr>
<h4>${nickname} 님의 제보입니다.</h4>
<p>${content} </p>
<p>본 메일은 발신 전용 메일로서 회신 되지 않습니다.</p>
`,
});
};
module.exports = { sendMail };
메일내용은 따로 뺄까하다가 별 내용이 없어서(..) 한번에 넣었습니다!