본문 바로가기
language/Python

[Python] AWS SES + MIME을 이용한 메일 기능 구현 소

by 스파이디웹 2023. 11. 25.
728x90

AWS SES(Simple Email Service)란?

  • Outbound만 가능한 AWS의 이메일 전송서비스이다
  • SES를 사용하는 목적은 회원들에게 프로모션 전송, 회원가입 시 이메일 확인 인증, 비밀번호 전송 등을 수행하기 위해서이며, 프리티어 기준 매일 2,000통을 보낼 수 있다. 이처럼 SES는 대량의 이메일을 발송하기에 적절한 서비스이며 발송한 이메일의 수와 데이터 전송에 대해 요금이 부과되기 때문에 저렴한 비용으로 이용이 가능
  • SMTP를 사용

SMTP(Simple Mail Transfer Protocol)란?

  • 메일 전송 프로그램이 서버로 메일을 보낼 때 사용하는 프로토콜
  • 오직 텍스트만 전송이 가능하다.
  • 스트림 방식을 이용하여 전송한다.
  • 한 개의 메시지를 해당 서버의 여러 수신자에게 보낼 수 있다.
  • 상태 코드는 250(수신 성공), 550(수신자 못 찾음)

 

MIME(Multipurpose Internet Mail Extension)이란?

  • SMTP로 전송시 이메일에 텍스트 밖에 포함하지 못하는 단점을 보완하여, 메시지 안에 텍스트 이외의 데이터를 전송할 수 있도록 하는 프로토콜
  • 이메일과 함께 동봉할 파일을 텍스트 문자로 전환해서 이메일 시스템을 통해 전달하기 위해 개발
  • 현재는 웹을 통해서 여러형태의 파일 전달
  • MIME은 이메일 헤더에 2줄을 추가한다. 이메일에 MIME이 사용되었는지 여부와 MIME 정보를 바디에 어떻게 포함시킬 건지를 정의
MIME-Version: 1.0
Content-Type: Multipart/Mixed; Boundary=Mime_separator

AWS SES SMTP설정

위 사진과 같이 SMTP endpoint와 사용해야 하는 Port를 확인할 수 있습니다.


인증된 사용자, 도메인 생성(Identity)

사진과 같이 도메인, 서브도메인, 이메일을 인증하게 되면 전송자로써 이메일을 사용할 수 있게 됩니다.

  • 인증된 도메인을 등록하게 될 때 DKIM(DomainKeys Identified Mail)를 사용할 수 있게 됩니다.
  • 또한 도메인이 Amazon Route53에 등록되어 있다면, Amazon SES는 자동적으로 도메인의 DNS 서버와 필수적인 레코드들을 업데이트하게 됩니다.
DKIM이란?

스팸 발송자 및 기타 악의적인 당사자가 합법적인 도메인을 가장하는 것을 방지하는 데 도움이 되는 이메일 인증 방법
설정은 발신자 주소의 '도메인(URL)'에 하는 설정

예를 들어 사용하는 발신자 이메일 주소가 
spidy@spidyweb.com 인경우, 예시 주소의 도메인에 해당하는 spidyweb.com에 추가하는 설정입니다. 따라서 본인이 구입해서 도메인을 가지고 있는 경우에만 설정이 가능하며 공개된 이메일 주소(naver.com, gmail.com, kakao.com 등) 또는 본인이 가지고 있지 않은 도메인(예: stibee.com)에는 설정이 불가능합니다.


 

참조:

https://ap-northeast-2.console.aws.amazon.com/ses/home?region=ap-northeast-2#/get-set-up

 

https://ap-northeast-2.console.aws.amazon.com/ses/home?region=ap-northeast-2#/get-set-up

 

ap-northeast-2.console.aws.amazon.com

 

728x90

댓글