본문 바로가기
공부

메일 서버 구축 with AWS SES

by algosketch 2023. 1. 30.

절대로 블라인드 가입하고 싶어서 메일 서버까지 만든 건 아니고... 

내가 이용한 건 AWS SES야. AWS Simple Email Service의 약자로 AWS에서 제공하는 메일 서비스야. 내가 메일 서버에 대해 진심은 아니라 여러 가지 옵션을 비교해서 보여주지는 않을 거고, 내가 구축한 방법에 대해서만 간단하게 요약해볼게.

 

사전 준비

AWS SES를 만들기 위한 준비물을 2가지야

  • 도메인 주소
  • S3 버킷

도메인 주소는 test@<도메인> 이 위치에 들어갈 주소를 가지고 있어야 해.
S3 버킷은 수신된 메일을 저장하는 용도로 필요해. 이건 따로 준비하지 않아도 SES 콘솔에서 만들 수 있으니 미리 준비할 필요는 없을 거야. S3 버킷을 이용하는 방법만 있는 건 아니지만 여기선 생략할게.

 

AWS SES를 이용한 메일 서비스 구축 과정

중요한 건 송신용 서비스만 이용한다면 서버 위치에 대한 제약이 없지만 수신 서비스도 이용한다면 제한되어 있어. 지원되는 엔드 포인트는 여기를 참고해줘. 나는 oregon을 선택했어. SES 콘솔을 들어가면 왠지는 모르겠지만 아마 default로 도쿄가 선택될 거야. 메일 수신 서비스도 이용하려면 이 지역을 바꿔줘야 해.

위 주의사항을 제외하면 과정을 다음과 같이 진행 돼.

  1. 도메인 생성
  2. 도메인 인증
  3. 수신 규칙 생성 (optional)
  4. 이메일 생성
  5. 이메일 인증

첫 번째로 도메인을 생성하고 인증해줘야 해. 내가 소유하고 있는 주소로 도메인을 만들고, 그 소유권을 인증해야 해. 소유권 인증은 도메인을 구입한 사이트의 관리 콘솔에 들어가서 cname 3가지를 추가하면 돼. cname에 입력할 값은 도메인을 생성하면 확인할 수 있어. 그러면 내 도메인 주소로 들어온 패킷이 AWS로 포워딩 될 거야. cname 추가 후 몇 분 ~ 몇 시간정도 기다리면 도메인 인증이 완료될 거야.

그 다음 이메일을 생성하면 되는데, 이 이메일 주소는 송신용 이메일 주소라고 생각하면 돼. 예를 구글 이메일을 작성하면 SES에서 그 이메일을 송신자로 설정하여 메일을 보낼 수 있어. 인증은 구글 메일함을 확인하면 돼. 만약 나만의 새로운 이메일을 만들고 싶다면 <ID>@<domain>으로 만들면 돼.

다만 나는 아직 이 도메인으로 들어오는 메일을 수신할 수 있는 방법이 없어. 우선 다시 도메인을 구입한 사이트에 가서 MX 레코드를 추가해 줘야 해. MX 레코드 값은 여기를 참고해줘. 그리고 수신 규칙을 생성해서 메일을 S3 버킷으로 포워딩 해줘야 해. 그러면  XXX@<내 도메인>으로 들어오는 메일은 S3 버킷에 쌓이게 될 거야.