IT 개발자가 되기위한 여정

컴퓨터 공부를 시작함에 앞서 계획 및 개발에 대한 내용을 풀어나갈 생각입니다.

프로젝트/오키드 마켓 (장기 , 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="휴대폰 전화번호"