메일 발송을 위해서 SMTP 서비스가 필요할 경우 sendgridmailgun을 주로 사용했었는데 만약 AWS 주로 사용한다면 별도의 서비스를 사용하기 보다는 AWSSMTP를 사용하는 것이 관리하기에 편하다. AWS에는 Simple Email Service 라는 이름으로 SMTP 서비스를 제공하고 있다. 아래와 같이 서비스를 검색할 수 있다.

만약 서울 지역에서 서비스를 운영하고자 한다면 아래와 같이 지원하지 않는 지역이라는 메시지가 나타날 것이다. 그렇다면 서울 이외 SMTP에 접속할 서버를 고려하여 가장 적합한 지역을 선택하여 진행하면 된다. 나는 US West 를 선택했다.

그 후 아래와 같이 도메인 인증 화면을 확인할 수 있다. Verify a New Domain을 선택하여 도메인 인증을 진행해보자

도메인 인증을 시작하면 아래와 같이 도메인 명을 입력하는 화면과 DKIM 세팅을 생성하는 옵션을 확인할 수 있다. 도메인 명은 메일을 발송한 주소의 도메인을 입력하면 되고 DKIM 옵션은 선택하여 진행하는 것을 추천한다.

DKIM 이란 DomainKeys Identified Mail으로 특정 도메인에서 보내는 메일의 위장을 방지하는 기술을 말한다. SMTP 프로토콜 특성상 입력하는 대로 메일에 발신자를 표시할 수 있기 때문에 (프로토콜에서는 별도로 발신자 주소를 검증이 없다) 스팸이나 악용을 목적으로 메일을 발송하는 경우 신뢰할 수 있는 메일 주소로 발신자를 바꿔서 사용하는 경우가 많았다. 하지만 DKIM는 비공개 키 1개와 공개 키 1개를 사용하여 메일 발송 시 비공개 키를 발신 헤더에 추가하고 수신하는 메일 서버에서 메일 수신 시 수신된 도메인의 DNS(TXT레코드)에 설정된 DKIM 공개 키와 비교하고 공개 키를 사용하여 메일 서명을 복호화하고 서명된 메일 소스를 확인한다. 스팸 방지를 위해서는 SPF레코드도 같이 설정해 주는 것이 좋은데 SPFDKIM과 비슷한 방법으로 DNS를 이용하는 발신 소스를 확인하는 방법이다.

다음 화면에서 인증을 위해 설정해야 하는 DNS 레코드를 확인할 수 있다. 직접 입력해도 되고 Route 53을 이용한다면 한번에 추가할 수 있는 기능도 제공했다.

DNS 설정이 모두 완료된다면 아래와 같이 인증 완료 화면이 보일 것이다.

이제 좌측 메뉴에서 SMTP Settings을 선택해 보자.

SMTP Server NamePort 그리고 인증 정보를 확인할 수 있다. 아직 이 상태에서는 인증 정보가 생성되지 않아서 사용할 수 없다. Create My SMTP Credentials 를 클릭해서 인증 정보를 생성해 보자.

Create My SMTP Credentials 를 클릭하면 아래와 같이 IAM User Name을 설정하는 페이지가 보이고 원하는 이름을 입력하면 된다.

이후 생성이 완료되면 다음과 같이 UsernamePassword가 생성된다. 이 정보를 SMTP 접속 정보에 입력하면 된다.

이제 발송하는 메일의 주소를 인증하는 단계이다. Email Addresses 메뉴에서 Verify a New Email Address버튼을 클릭하여 발송하고자 하는 이메일 주소를 입력한다.

그럼 다음과 같은 인증 메일을 받을 수 있는데 링크를 클릭하여 인증을 받으면 된다.

인증이 완료되면 다음과 같이 완료 상태를 확인할 수 있다.

이제 마지막으로 sandbox를 해제 해야 하는 일이 남았다. Simple Email Service 는 기본적으로 인증된 이메일만 전송할 수 있도록 제한이 걸려있다. 하지만 서비스에 필요하다면 센터를 통해서 기능을 해제할 수 있다. 해제 방법은 다음과 같다. 아래 지원 메뉴에서 지원센터를 선택한다.

지원 센터를 선택 후 다시 Create case 를 선택한다.

Service limit increase를 선택한다.

그 후 아래와 같이 내용을 입력하고(추가로 기입할 사항이 있으면 입력해도 좋다), Use case description에 어떻게 서비스에서 발송 되는지 상세히 기입한다. 인터넷에 공개된 내용을 찾아보니 서비스의 내용이 비슷하다면 아래 내용을 붙여 넣기 해도 되는 듯 하다.

  • 수신 메일 주소는 사용자의 동의를 얻어 수집합니다.
  • 반송 메일은 시스템 관리자가 반송 이유를 확인 후 변경 또는 삭제 합니다.
  • 불만 제기는 이메일, 게시판, 유선을 통해 접수하여 처리합니다.
  • 위 요청에 명시한 증가 용량은 최대치를 예상하여 산정했습니다.

이렇게 신청이 완료되면 하루 이틀 후 아래와 같은 메시지를 받게 되며 모든 처리가 완료되게 된다. 신청한 내용보다 더 제한을 높여서 보내줬다. (메일 내용 이하 생략)

Hello,

Thank you for submitting your request to increase your sending limits. Your new sending quota is 50,000 messages per day. Your maximum send rate is now 14 messages per second. We have also moved your account out of the Amazon SES sandbox.

This takes effect immediately in the US West (Oregon) region. You can view the current sending rate and sending quota for your account on the Sending Statistics page of the Amazon SES console, or by using the GetSendQuota API.

We noticed that you did not provide the information requested below. Please review the following information and make the necessary changes to avoid any interruption in your sending.