프로젝트/오키드 마켓 (장기 , 1인)
Naver Cloud Platform [2] - 이메일 송신하기
제로시엘
2022. 8. 16. 23:46
먼저 이메일 서비스를 사용한다면 해당 서비스를 신청해야 한다.
https://guide.ncloud-docs.com/docs/email-email-1-2
Outbound Mailer 사용 가이드 - Cloud Outbound Mailer
guide.ncloud-docs.com
Cloud Outbound Mailer 서비스를 신청하면 된다. 달에 1000건까지 무료로 사용 가능하다.
Makesignature는 전편에서 만든 함수를 사용하면 된다.
import MakeSignature from "@components/makeSignature";
const axios = require("axios");
export default function sendEmail(email, payload) {
let resultCode = 404;
const date = Date.now().toString();
const accessKey = process.env.NAVER_ACCESS_KEY;
const method = "POST";
const url = "https://mail.apigw.ntruss.com/api/v1/mails";
const signature = MakeSignature("/api/v1/mails", method);
axios({
method: method,
url: url,
headers: {
"Contenc-type": "application/json; charset=utf-8",
"x-ncp-iam-access-key": accessKey,
"x-ncp-apigw-timestamp": date,
"x-ncp-apigw-signature-v2": signature,
},
data: {
senderAddress: `${process.env.MYMAIL}`,
title: `${email}님 반갑습니다. `,
body: `로그인 인증 번호는 ${payload} 입니다.`,
recipients: [
{
address: `${email}`,
name: null,
type: "R",
},
],
individual: true,
advertising: false,
},
})
.then((res) => {
console.log(res.data);
})
.catch((err) => {
console.log(err);
});
return resultCode;
}
입력받은 고객의 이메일을 email , 생성한 고유 토큰을 payload로 받아와서 고객에게 보내주는 방식이다.
사용중인 환경상수
NAVER_ID="ncp:sms:kr:숫자:프로젝트명"
NAVER_ACCESS_KEY="ABABABABAB232323"
NAVER_ACCESS_SECRIT_KEY="ABABABABABABABBABABB23323"
MYMAIL="클라우드 네이버 메일"
MYPHONE="휴대폰 전화번호"