Route 53에서 SMTP 서버에 대한 MX 레코드를 생성한 후 서버에서 이메일을 수신할 수 없는 이유는 무엇인가요?

5분 분량
0

Amazon Route 53에서 Simple Mail Transfer Protocol(SMTP) 서버에 대한 Mail exchanger(MX) 레코드를 생성했습니다. 그런데 현재 서버에서 이메일을 수신할 수 없습니다.

간략한 설명

Route 53 DNS 서비스에 대해 구성한 퍼블릭 호스팅 영역이 제대로 구성되지 않은 경우 클라이언트는 SMTP 서버에 연결할 수 없습니다. 퍼블릭 호스팅 영역을 올바르게 구성하려면 다음 설정을 확인하세요.

  • 퍼블릭 호스팅 영역이 적절한 리소스 레코드 세트로 채워져 있습니다.
  • AWS 외 도메인 이름 등록 기관이 Route 53 퍼블릭 호스팅 영역의 이름 서버를 가리킵니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우, 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

적절한 리소스 레코드 세트를 사용하고 있는지 확인

SMTP 서버에 대해 적합한 리소스 레코드 세트를 생성했는지 확인합니다. 자세한 내용은 Amazon Route 53 리소스 레코드를 생성 또는 편집할 때 지정하는 값을 참조하세요. 퍼블릭 호스팅 영역에 최소한 SMTP 서버의 MX 레코드가 포함되어 있어야 합니다. 자세한 내용은 단순 레코드 특정 값을 참조하세요.

AWS 외 도메인 이름 등록 기관이 Route 53 퍼블릭 호스팅 영역의 이름 서버를 가리키고 있는지 확인

DNS 서비스에 대해 Route 53을 사용하고 도메인 등록을 위해 다른 도메인 이름 등록 기관을 사용할 수 있습니다. 이 경우 도메인 이름 등록 기관이 Route 53 퍼블릭 호스팅 영역의 이름 서버를 참조하는지 확인합니다. 이렇게 하려면 인터넷 기반 whois 유틸리티를 쿼리하여 다음을 수행합니다.

  • 도메인 이름의 등록 기관을 찾습니다. 쿼리 필드에 도메인 이름을 입력하고 도메인 옵션을 선택한 다음 제출을 선택합니다. 쿼리 결과에 도메인 이름 등록 기관 및 도메인 이름에 대한 권한 있는 이름 서버도 포함됩니다.
    참고: 쿼리 결과가 Route 53 퍼블릭 호스팅 영역과 연결된 이름 서버 이외의 이름 서버 목록을 반환할 수 있습니다. 이 경우 SMTP 서버에 대한 DNS 쿼리가 Route 53로 전송되지 않습니다. 도메인 이름과 연결된 이름 서버 목록을 업데이트하도록 도메인 이름 등록 기관에 문의합니다.
  • 도메인 등록 기관의 연락처 정보를 찾습니다. 쿼리 필드에 등록 기관 이름을 입력하고 등록 기관 옵션을 선택한 다음 제출을 선택합니다. 이 정보를 사용하여 도메인 등록 기관에 문의하세요. 도메인 등록 기관에 이름 서버 목록 업데이트를 요청하여 자신의 도메인 이름이 퍼블릭 호스팅 영역에서 이름 서버 목록을 참조할 수 있게 합니다.
  • 등록 기관의 이름 서버에서 Time To Live(TTL)가 만료되기 전에 전송하려는 DNS 서비스가 도메인의 리소스 레코드 세트를 삭제하지 않는지 확인합니다. Route 53 DNS 서비스는 도메인 이름 서버 레코드의 TTL 기간이 경과할 때까지 도메인 이름에 대한 DNS 쿼리에 응답하지 않습니다. 자세한 내용은 DNS 설정을 변경하였지만 적용되지 않음을 참조하세요.

DNS MX 레코드 세트 문제인지 확인

1.다음 명령을 사용하여 도메인에 대한 MX 레코드가 있는지 확인합니다.

Linux 혹은 macOS

dig DOMAIN_NAME MX

그러면 다음 dig 예제와 비슷한 출력이 반환됩니다.

$ dig amazon.com MX

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.2 <<>> amazon.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61726
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;amazon.com.                    IN      MX

;; ANSWER SECTION:
amazon.com.             300     IN      MX      5 amazon-smtp.amazon.com.
;; Query time: 1 msec
;; SERVER: 10.10.0.2#53(10.10.0.2)
;; WHEN: Wed Apr 14 06:21:43 UTC 2021
;; MSG SIZE  rcvd: 67

Windows

nslookup -type=MX DOMAIN_NAME

그러면 다음 nslookup 예제와 비슷한 출력이 반환됩니다.

$ nslookup -type=MX amazon.com
Server:         10.10.0.2
Address:        10.10.0.2#53

Non-authoritative answer:
amazon.com      mail exchanger = 5 amazon-smtp.amazon.com.

2.다음 명령을 사용하여 MX 레코드 호스트 이름을 확인할 수 있는지 확인합니다.

Linux 혹은 macOS

dig MX_RECORD

그러면 다음 dig 예제와 비슷한 출력이 반환됩니다.

$ dig amazon-smtp.amazon.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.2 <<>> amazon-smtp.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64180
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;amazon-smtp.amazon.com.                IN      A

;; ANSWER SECTION:
amazon-smtp.amazon.com. 27      IN      A       52.94.124.7

;; Query time: 1 msec
;; SERVER: 10.10.0.2#53(10.10.0.2)
;; WHEN: Wed Apr 14 06:41:18 UTC 2021
;; MSG SIZE  rcvd: 67

Windows

nslookup MX_RECORD

그러면 다음 nslookup 예제와 비슷한 출력이 반환됩니다.

$ nslookup amazon-smtp.amazon.com
Server:         10.10.0.2
Address:        10.10.0.2#53

Non-authoritative answer:
Name:   amazon-smtp.amazon.com
Address: 52.119.213.154

**참고:**일부 DNS 공급자는 MX 레코드 세트 이름 앞에 at 기호(@)를 추가해야 합니다. 또는 공급자가 루트 도메인에 대한 MX 레코드 세트를 생성할 때 이름에 "@"을 포함하는 MX 레코드 세트를 생성하도록 요구할 수 있습니다. 그러나 Route 53 MX 레코드 세트 이름 앞에 "@" 또는 다른 기호를 추가하지 않습니다. Route 53에서 루트 도메인에 대한 MX 레코드 세트를 생성하려면 레코드 세트 이름을 비워 둡니다. 그런 다음, Route 53 MX 레코드 세트의 나머지 필드에 적절한 값을 제공합니다.

이메일 전송 및 수신 테스트

메일 서버에 연결하고 SMTP 명령을 사용하여 이메일을 전송 및 수신 기능을 테스트합니다.

1.다음 명령을 입력한 다음 Enter 키를 누릅니다. 자리 표시자 값을 메일 서버 이름 또는 IP 주소와 포트 번호로 바꿔야 합니다.

telnet MAIL_SERVER_NAME_OR_IP MAIL_SERVER_PORT_NUMBER

참고: 이 명령에서 오타가 있는 경우 Enter 키를 누르세요. 이 경우에는 Backspace 또는 Delete 키를 눌러도 작동하지 않습니다. Enter 키를 누른 후 명령을 다시 시도합니다. 경우에 따라 텔넷 세션을 닫고 다시 연결해야 할 수도 있습니다.

2.다음 명령을 입력한 다음 Enter 키를 누릅니다. 자리 표시자 값을 메일 서버 도메인 이름으로 바꿔야 합니다.

EHLO YOUR_MAIL_SERVER_FULLY_QUALIFIED_DOMAIN_NAME

3.다음 명령을 입력한 다음 Enter 키를 누릅니다. 자리 표시자 값을 이메일 주소로 바꿔야 합니다.

mail from: your_name@yourdomainname

서버는 250 OK로 응답합니다.

4.다음 명령을 입력한 다음 Enter 키를 누릅니다. 자리 표시자 값을 수신자의 이메일 주소로 바꿔야 합니다.

rcpt to: recipient@yourdomainname

참고: 발신자와 수신자의 이메일 주소는 동일할 수 있습니다.

서버는 250 Accepted로 응답합니다.

**중요:**서버에서 발신자 및 수신자와 같은 정보를 확인할 수 있는 경우 메시지가 수락된 것으로 확인됩니다.

5.    다음 명령을 입력한 다음 Enter 키를 누릅니다.

data

6.    다음 명령을 입력한 다음 Enter 키를 누릅니다.

Subject: SPECIFY_SUBJECT_HERE

7.    다음 명령을 입력한 다음 Enter 키를 누릅니다.

SPECIFY_MESSAGE_HERE

8.    다음 명령을 입력한 다음 Enter 키를 누릅니다.

.

서버는 전송할 메시지를 수락하고, 250 OK로 응답하며, 이는 이메일이 전송되었음을 나타냅니다.

9.    MX 레코드가 올바르게 구성되었지만 SMTP 서버가 여전히 이메일을 수신할 수 없는 경우, 이메일 서비스 공급자에게 문의하세요.

AWS 공식
AWS 공식업데이트됨 일 년 전