메일 발송을 위해서 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 를 클릭해서 인증 정보를 생성해 보자.