728x90
nodemailer는 Node.js에서 가장 많이 사용하는 메일링 관련 모듈입니다.
# nodemailer 설치
npm install nodemailer
[mailtrap 서비스 이용해서 이메일 보내기]
mailtrap 서비스는 실제로 이메일을 받는 사람 주소로 발송되지는 않고, 정상적으로 보내지는지를 테스트 할 수 있는 가짜 SMTP 서버입니다. mailtrap은 실제로 받는 사람에게 이메일을 보내지 않고도 일반 텍스트 형식, HTML 형식, 첨부파일 등 실제 이메일이 어떻게 보내질지를 테스트 할 수 있습니다.
mailtrap 사이트 (https://mailtrap.io/) 에서 회원가입 후 로그인 합니다.
"Sandbox" -> "Inboxes" 메뉴에서 보낸메일들을 확인 할 수 있습니다. 기본적으로 제공하는 "My Inbox" 클릭합니다.
"SMTP Settings" 탭 "Integrations" 에서 'Nodemailer' 를 선택합니다. 'Nodemailer'를 선택하면 nodemailer의 transport 객체를 생성하는 데 필요한 SMTP 정보가 자동 생성됩니다.
mailtrap을 이용해서 메일을 발송하는 함수 입니다.
// 경로 : RootDir/nodemailer
const nodemailer = require("nodemailer");
const sendMail = async (data) => {
let transport = nodemailer.createTransport({
host: "smtp.mailtrap.io",
port: 2525,
auth: {
user: "인증정보",
pass: "인증정보",
},
});
transport.sendMail(data, (err, info) => {
if (err) {
console.log(err);
} else {
return info.response;
}
});
};
module.exports = {
sendMail,
};
테스트 메일 발송용 서버 소스입니다.
const express = require("express");
const nodemailer = require("./nodemailer");
const app = express();
app.use(
express.json({
limit: "50mb",
})
);
app.listen(3000, () => {
console.log("Server started. port 3000");
});
// API 경로 : http://localhost:3000/api/email
app.post("/api/email", async (req, res) => {
const r = await nodemailer.sendMail(req.body.param);
res.send(r); //결과를 클라이언트로 보냄
});
테스트시 Post로 전송할 데이터
{
"param":{
"from": "test@test.com",
"to": "test@test.com",
"subject" : "test mail subject",
"text": "test mail body"
}
}
[참고자료]
- Node.js 프로젝트 투입 일주일 전 (고승원 지음)
728x90
'Node.js' 카테고리의 다른 글
Node.js(Version: 20.10.0) 에서 ESM 문법 적용 방법 (0) | 2023.12.27 |
---|---|
Node.js 엑셀파일처리(xlsx) (0) | 2022.12.27 |
Node.js MySQL 모듈 사용(mysql) - CRUD 샘플 코드 (0) | 2022.12.25 |
Node.js MySQL 모듈 사용(mysql) (0) | 2022.12.25 |
Node.js 첨부파일 업로드(multer) (0) | 2022.12.20 |