본 포스트는 AWS로 시작하는 인프라 구축의 정석 책을 활용한 스터디 기록입니다.
메일 전송 시스템을 크게 보면
메일을 보내는 송신자, 메일을 받는 수신자가 있고 그 사이에서는 해당 메일을 전달해주는 메일 서버가 있습니다!
메일은 송신과 수신 두가지 작업이 있기 때문에 각각 전용 프로토콜이 따로 존재합니다!
송신 프로토콜은 SMTP를 사용합니다.
SMTP는 Simple Mail Transfer Protocol로 메일 전송에 사용하는 프로토콜입니다.
위의 메일 전송 시스템 그림에서 1,2,3번에 해당하는 동작은 모두 SMTP 프로토콜을 사용해서 이루어집니다.
수신 프로토콜은 POP3 혹은 IMAP4를 사용합니다.
위의 메일 전송 시스템 그림에서 4번에 해당하는 동작은 POP3 혹은 IMAP4를 사용해서 이루어집니다.
수신 프로토콜은 POP3 혹은 IMAP4를 사용한다고 했는데.. 그럼 둘의 차이는 무엇일까요?
두 프로토콜의 가장 큰 차이는 '최종적으로 도착한 메일이 저장되는 위치'입니다.
POP3는 메일함의 메일을 로컬 컴퓨터에 내려받아 확인하는 형태입니다. 그렇기에 네트워크가 연결되지 않은 상태에서도 메일을 읽을 수 있지만, 로컬 컴퓨터에 각각 저장되기 떄문에 다른 컴퓨터에서는 메일을 읽을 수 없습니다.
반면 IMAP4는 브라우저 등을 이용해 직접 메일함의 메일을 읽는 형태입니다. 인터넷이 연결되어 있으면 어디서든 메일을 확인할 수 있습니다.
Amazon SES는 메일 송수신 기능을 제공하는 AWS의 관리형 서비스입니다.
(일반적으로 사람과 사람이 주고 받는 이메일이 아닌 애플리케이션에서 메일을 송수신하는 용도로 사용하기 좋은 서비스입니다!!)
SES를 사용해서 메일을 송신할 때에는 특정 사용자가 메일을 송신하는 것이 아니기 때문에 송신자를 나타낼 IAM 사용자가 필요합니다!
IAM 사용자에게 SES 송신이 가능한 권한을 부여하고 SES에게 요청을 하면 됩니다!
SES를 통해 보낸 메일은 일반적인 메일 수신과 동일하게 각 메일 서버를 통해 읽을 수 있습니다.
SES가 자체적으로 POP3 혹은 IMAP4와 같은 프로토콜을 제공하지는 않으며(관리자가 수동으로 대응할 수 없다는 뜻), 대신 메일을 수신했을 때 액션이라 불리는 처리를 실행할 수 있습니다!
액션을 사용해 애플리케이션에서 제공하는 커스텀 API를 실행할 수 있으며 다른 AWS 서비스와의 연동도 가능합니다!
샌드박스란 외부에 영향을 주지 않도록 격리된 환경을 뜻합니다.
Amazon SES는 악용을 방지하기 위해 샌드박스 내부에 위치시키는데요!
샌드박스 내부에서는
는 규칙이 있습니다.
샌드박스 외부로 이동하기 위해서는 AWS 지원 센터로 직접 요청을 해야합니다..!
참고
https://www.cloudflare.com/ko-kr/learning/email-security/what-is-smtp/