1. Verified identities 등록
- Amazon SES 를 사용해서 이메일을 보내기 위해서는 먼저 email의 도메인이나 email 주소 확인작업을 먼저 진행해야한다. (여기서는 단일 이메일로 진행)
- SES 콘솔에서 Configuration>Verified identities> Create identity
- Identity type을 Email address로 선택하고 아래에 본인 이메일을 적어주고 Create identity 버튼을 눌러주면 aws 에서 등록한 이메일 주소로 확인 메일을 보내준다 .
- 확인 링크를 클릭하면 이제 해당 이메일주소로 SES 서비스를 이용할 수 있다.
2. 사용자 권한 등록
- aws-sdk 로 이메일을 보내기 위한 권한은 다음과 같다
"ses:SendEmail", "ses:SendTemplatedEmail", "ses:SendRawEmail"
- 해당 권한들이 aws 사용자 권한에 등록되어 있어야 한다.
3. aws-sdk/client-ses 패키지 설치
- 본인의 프로젝트에 aws-sdk/client-ses 패키지를 설치한다. (여기서 사용한 버전은 3.131.0 이다)
$ yarn add @aws-sdk/client-ses
or
$ npm install @aws-sdk/client-ses
4. 코드 작성
//전송할 이메일 form
const message : Message = {
Body: {
/* required */
Html: {
Charset: "UTF-8",
Data: "HTML_FORMAT_BODY",
},
Text: {
Charset: "UTF-8",
Data: "TEXT_FORMAT_BODY",
},
},
Subject: {
Charset: "UTF-8",
Data: "EMAIL_SUBJECT",
},
}
const sourceEmail = "SES 콘솔에서 등록한 본인의 이메일"
const destinationEmails = ["해당 메일을 받을 이메일주소",]
const sendEmail = async () => {
const sesClient = createSesClient()
const sendEmailCommand = createSendEmailCommand()
return await sesClient.send(sendEmailCommand);
};
const createSesClient = () => {
const config: SESClientConfig = {
credentials: {
accessKeyId: access_key_id, //본인의 access key id
secretAccessKey: secret_access_key, //본인의 secret access key
},
region : region, //전송하는 region
};
return new SESClient(config);
}
const createSendEmailCommand = () => {
const sendEmailCommandInput: SendEmailCommandInput = {
Destination: {
ToAddresses: destinationEmails,
},
Message: message,
Source: sourceEmail
};
return new SendEmailCommand(sendEmailCommandInput);
}
- sendEmail 함수를 실행하면 destination에 등록한 이메일주소로 메일이 발송된다.
- credential을 하는 방법은 여러가지가 있지만 여기서는 단순하게 사용자의 accessKeyId와 secretAccessKey로 진행했다.
참고
'Infra > aws' 카테고리의 다른 글
Github Action과 AWS Code Deploy를 이용한 배포 파이프라인 자동화하기 (Step 2) (0) | 2022.07.05 |
---|---|
Github Action과 AWS Code Deploy를 이용한 배포 파이프라인 자동화하기 (Step 1) (0) | 2022.07.03 |