네발오징어
개발이모저모
네발오징어
전체 방문자
오늘
어제
  • 분류 전체보기
    • nodejs
    • spring
    • 알고리즘
    • DevOps
    • AWS

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • AWS
  • TypeScript
  • setter
  • getter
  • pre-signed-url
  • S3

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
네발오징어

개발이모저모

AWS SES (with aws-sdk)
AWS

AWS SES (with aws-sdk)

2023. 5. 23. 11:46

사용자에게 메일주소를 받아 SMTP를 사용하여 메일을 보내는 방법들이 있다.
과거 학생때는 이를 구글 계정 설정에서 "보안 수준이 낮은 앱의 액세스"를 허용하여 프로그램과 연결해서 사용했었다. 하지만 2022년 5월 30일부로 이 기능에 대해 지원이 중지되어 더이상 사용할 수 없게되었다.

그래서 찾아보다 발견한 것이 "AWS SES" (Simple Email Service) 였다.

이 글은 Nodejs를 기반으로 작성되었습니다.

프리티어는 매 달 62,000건의 메세지까지는 무료이고 요금은 아래와 같다.

사용

우선 AWS SES에 접속하여준다.

오른쪽의 Create Identity를 클릭하여 자격증명에 들어간다.

자격증명을 할 이메일을 적어준다.
메일에 들어가 aws 측에서 온 메일을 5분 안에 확인하고 링크를 클릭하여 자격 증명을 해준다.

aws-sdk

aws-sdk에서 사용할 IAM을 생성해주고 액세스키와 비밀키를 가져와 저장해준다.
아래 코드를 형식에 맞게 작성하고 보내주면 된다.

import nodemailer from 'nodemailer';
import dotenv from 'dotenv';
import AWS from 'aws-sdk';
import { logger } from './winstonLog';

AWS.config.update({ region: (SES 리전) });

const transporter = nodemailer.createTransport({
    host: 'email-smtp.(SES 리전).amazonaws.com',
    port: 465,
    secure: true,
    auth: {
        user: (IAM 액세스 키 ID),
        pass: (IAM 비밀키),
    },
});

export function SendMail(email: string, link: string | undefined) {
    transporter.sendMail(
        {
            from: (보내는 메일 주소(어디서)),
            to: (보낼 메일 주소(어디로)),
            subject: (메일 제목),
            html:(메일 내용)
        },
        (err: any, info: { envelope: object; messageId: string }) => {
            if (err) {
                logger.error(err);
            }
            logger.info('sendEmail: ' + JSON.stringify(info.envelope));
            logger.info(info.messageId);
        },
    );
}
 

'AWS' 카테고리의 다른 글

NAT Gateway란?  (0) 2023.06.27
Network ACL vs 보안그룹  (0) 2023.06.20
Pre-signed url  (0) 2023.06.12
파일 다운로드 속도 비교(S3 GetObject vs axios get)  (0) 2023.06.05
    'AWS' 카테고리의 다른 글
    • NAT Gateway란?
    • Network ACL vs 보안그룹
    • Pre-signed url
    • 파일 다운로드 속도 비교(S3 GetObject vs axios get)
    네발오징어
    네발오징어

    티스토리툴바