Exchange Server에서 텔넷을 사용하여 SMTP 통신 테스트

텔넷을 사용하여 메시징 서버 간의 SMTP(Simple Mail Transfer Protocol) 통신을 테스트할 수 있습니다. SMTP는 한 메시징 서버에서 다른 메시징 서버로 전자 메일 메시지를 보내는 데 사용되는 프로토콜입니다. 텔넷을 사용할 경우 메시징 서버에 SMTP 명령을 직접 보낼 수 있기 때문에 메시지를 송수신하는 데 문제가 있는 경우 도움이 될 수 있습니다. 또한 서버가 일반적인 연결에서 반환되는 응답으로 회신합니다. 이러한 결과는 메시지를 송수신할 수 없는 이유를 알아내는 데도 도움이 될 수 있습니다.

텔넷을 사용하여 다음에 대한 SMTP 통신을 테스트할 수 있습니다.

  • 인터넷에서 Exchange 조직으로의 메일 흐름을 테스트합니다.

  • Exchange에서 인터넷의 다른 메시징 서버로의 메일 흐름을 테스트합니다.

https://testconnectivity.microsoft.com/에서 텔넷을 사용하여 SMTP 연결을 테스트하는 대신, Microsoft 원격 연결 분석기를 사용할 수 있다는 사실을 알고 있나요? 원격 연결 분석기를 사용하여 수행하려는 연결 테스트(이 경우 인바운드 SMTP 전자 메일)를 선택하고 표시되는 지침을 따릅니다. 입력해야 하는 정보를 입력하면 테스트가 실행된 후 결과가 표시됩니다. 한 번 시도해 보세요.

시작하기 전에 알아야 할 내용

  • 예상 완료 시간: 15분

  • 이 항목의 절차에는 Exchange 권한이 적용되지 않습니다. 이 절차는 Exchange Server나 클라이언트 컴퓨터의 운영 체제에서 수행됩니다.

  • 이 항목에서는 Windows에 포함되어 있는 텔넷 클라이언트를 사용하는 방법을 보여 줍니다. 타사 텔넷 클라이언트에는 이 항목에 표시된 것과는 다른 구문이 필요할 수 있습니다.

  • 이 항목의 단계에서는 TCP 포트 25를 사용하여 익명 연결을 허용하는 인터넷 연결 서버에 연결하는 방법을 보여 줍니다. 인터넷에서 이 서버에 연결하려는 경우 TCP 포트 25의 인터넷에서 Exchange 서버에 연결할 수 있는지 확인해야 합니다. 마찬가지로 Exchange 서버에서 인터넷의 서버에 연결하려는 경우 Exchange 서버가 TCP 포트 25에서 인터넷에 대한 연결을 열 수 있는지 확인해야 합니다.

  • TCP 포트 2525를 사용하는 일부 수신 커넥터가 있는 것을 알 수 있습니다. 이러한 커넥터는 내부 수신 커넥터로, 익명 SMTP 연결을 수락하는 데는 사용되지 않습니다.

  • 원격 메시징 서버에 대한 연결을 테스트하는 경우 Exchange Server에서 이 항목의 단계를 실행해야 합니다. 원격 메시징 서버는 주로 SMTP 연결이 시작되는 IP 주소가 보낸 사람의 전자 메일 주소에 있는 도메인과 일치하는지 확인하도록 설정되어 있습니다.

  • 이 항목의 절차에 적용할 수 있는 바로 가기 키에 대한 자세한 내용은 Exchange 관리 센터의 바로 가기 키을 참조하세요.

문제가 있습니까? Exchange Server, Exchange Online 또는 Exchange Online Protection. 무슨 작업을 하고 싶으십니까?

1단계: 컴퓨터에 텔넷 클라이언트 설치

대부분의 Windows 버전에서는 먼저 텔넷 클라이언트를 설치해야만 해당 OS를 사용할 수 있습니다. 텔넷 클라이언트를 설치하려면 텔넷 클라이언트 설치를 참조하세요.

2단계: 대상 SMTP 서버의 FQDN 또는 IP 주소 찾기

포트 25에서 텔넷을 사용하여 SMTP 서버에 연결하려면 FQDN(정규화된 도메인 이름)(예: mail.contoso.com) 또는 SMTP 서버의 IP 주소를 사용해야 합니다. FQDN 또는 IP 주소를 모르는 경우 Nslookup 명령줄 도구를 사용하여 대상 도메인에 대한 MX 레코드를 찾을 수 있습니다.

참고

네트워크 정책에 따라 Nslookup 도구를 사용하여 인터넷에서 공용 DNS 서버를 쿼리하지 못할 수 있습니다. 대신 인터넷에서 무료로 사용할 수 있는 DNS 조회 또는 MX 레코드 조회 웹 사이트 중 하나를 사용할 수 있습니다.

  1. 명령 프롬프트에서 를 입력 nslookup한 다음 Enter 키를 누릅니다. 이 명령을 입력하면 Nslookup 세션이 열립니다.

  2. set type=mx을(를) 입력한 다음 Enter 키를 누릅니다.

  3. MX 레코드를 찾을 도메인의 이름을 입력합니다. 예를 들어 fabrikam.com 도메인에 대한 MX 레코드를 찾으려면 를 입력 fabrikam.com.한 다음 Enter 키를 누릅니다.

    참고

    뒤에 마침표를 사용하는 경우( . ) 도메인 이름에 실수로 기본 DNS 접미사가 추가되는 경우를 방지할 수 있습니다.

    이 명령의 출력은 다음과 같습니다.

    fabrikam.com mx preference=10, mail exchanger = mail1.fabrikam.com
    fabrikam.com mx preference=20, mail exchanger = mail2.fabrikam.com
    mail1.fabrikam.com internet address = 192.168.1.10
    mail2 fabrikam.com internet address = 192.168.1.20
    

    XM 레코드와 연결된 모든 호스트 이름 또는 IP 주소를 대상 SMTP 서버로 사용할 수 있습니다. 기본 설정 값이 낮은 항목(preference = 10 및 20)이 기본 SMTP 서버입니다. 부하 분산 및 내결함성에 대해 여러 MX 레코드와 서로 다른 기본 설정 값이 사용됩니다.

  4. Nslookup 세션을 종료할 준비가 되면 를 입력 exit한 다음 Enter 키를 누릅니다.

3단계: 포트 25에서 텔넷을 사용하여 SMTP 통신 테스트

이 예제에서는 다음 값을 사용합니다. 서버에서 명령을 실행할 때 이러한 값을 조직의 SMTP 서버, 도메인 등으로 바꿉니다.

  • 대상 SMTP 서버: mail1.fabrikam.com
  • 원본 도메인: contoso.com
  • 보낸 사람의 전자 메일 주소: chris@contoso.com
  • 받는 사람의 전자 메일 주소: kate@fabrikam.com
  • 메시지 제목: Contoso에서 테스트
  • 메시지 본문: 테스트 메시지입니다.

텔넷 클라이언트의 명령은 대/소문자를 구분하지 않습니다. 이 예제에서는 쉽게 구별할 수 있도록 SMTP 명령 동사를 대문자로 표기합니다. 대상 SMTP 서버에 연결한 후에는 텔넷 세션에서 백스페이스 키를 사용할 수 없습니다. SMTP 명령을 실수로 잘못 입력한 경우에는 Enter 키를 누른 후에 해당 명령을 다시 입력해야 합니다. 인식할 수 없는 SMTP 명령 또는 구문 오류로 인해 다음과 같은 500 5.3.3 Unrecognized command오류 메시지가 표시됩니다.

  1. 명령 프롬프트 창을 열고 를 입력 telnet한 다음 Enter 키를 누릅니다.

    이 명령을 입력하면 텔넷 세션이 열립니다.

  2. set localecho을(를) 입력한 다음 Enter 키를 누릅니다.

    옵션 명령을 사용하면 입력하는 문자를 볼 수 있습니다. 일부 SMTP 서버의 경우에는 이 옵션이 필요할 수도 있습니다.

  3. set logfile <filename>을(를) 입력한 다음 Enter 키를 누릅니다.

    옵션 명령을 사용하면 로깅이 사용되도록 설정되고 텔넷 세션에 대한 로그 파일이 지정됩니다. 파일 이름만 지정하면 로그 파일은 현재 폴더에 배치됩니다. 경로 및 파일 이름을 지정하면 경로는 로컬 컴퓨터에 있어야 하고 Windows DOS 8.3 형식(공백 없는 약식 이름)으로 경로 및 파일 이름을 입력해야 할 수도 있습니다. 경로는 존재해야 하지만 로그 파일은 자동으로 만들어집니다.

  4. OPEN mail1.fabrikam.com 25을(를) 입력한 다음 Enter 키를 누릅니다.

  5. EHLO contoso.com을(를) 입력한 다음 Enter 키를 누릅니다.

  6. MAIL FROM:<chris@contoso.com>을(를) 입력한 다음 Enter 키를 누릅니다.

  7. RCPT TO:<kate@fabrikam.com> NOTIFY=success,failure을(를) 입력한 다음 Enter 키를 누릅니다.

    선택적 NOTIFY 명령은 제공하기 위해 SMTP가 필요한 특정 배달 상태 알림(DSN) 메시지(바운스 메시지, 배달 못 함 보고서 또는 NDR로도 알려져 있음)를 지정합니다. 이 예제에서는 메시지 배달 성공 또는 실패 관련 DSN 메시지를 요청하게 됩니다.

  8. DATA을(를) 입력한 다음 Enter 키를 누릅니다.

  9. Subject: Test from Contoso을(를) 입력한 다음 Enter 키를 누릅니다.

  10. Enter 키를 다시 누릅니다.

    Subject: 필드와 메시지 본문 사이에 빈 줄이 하나 필요합니다.

  11. This is a test message을(를) 입력한 다음 Enter 키를 누릅니다.

  12. 마침표() . 를 입력한 다음 Enter 키를 누릅니다.

  13. SMTP 서버에서 연결을 끊려면 를 입력 QUIT한 다음 Enter 키를 누릅니다.

  14. 텔넷 세션을 닫려면 를 입력 quit한 다음 Enter 키를 누릅니다.

위의 단계를 사용한 성공적 세션은 다음과 같습니다.

C:\Windows\System32> telnet
Microsoft Telnet> set localecho
Microsoft Telnet> set logfile c:\TelnetTest.txt
Microsoft Telnet> OPEN mail1.fabrikam.com 25
220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at Fri, 5 Aug 2016 16:24:41 -0700
EHLO contoso.com
250-mail1.fabrikam.com Hello [172.16.0.5]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST
MAIL FROM: <chris@contoso.com>
250 2.1.0 Sender OK
RCPT TO: <kate@fabrikam.com> NOTIFY=success,failure
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Subject: test

This is a test message.
.
250 2.6.0 <c89b4fcc-3ad1-4758-a1ab-1e820065d622@mail1.fabrikam.com> [InternalId=5111011082268, Hostname=mail1.fabrikam.com] Queued mail for delivery
QUIT
221 2.0.0 Service closing transmission channel

4단계: 텔넷 세션의 성공 및 오류 메시지

이 섹션에는 이전 예제에서 사용된 명령에 대한 성공 및 실패 응답에 대한 정보가 제공됩니다.

참고

RFC 5321에 정의되어 있는 3자리 SMTP 응답 코드는 모든 SMTP 메시징 서버에 대해 동일하지만 응답의 텍스트 설명은 약간 다를 수 있습니다.

SMTP 응답 코드

SMTP 서버는 x.y.z 형식의 다양한 숫자 응답 코드로 명령에 응답합니다. 여기서 다음이 적용됩니다.

  • X는 명령이 양호, 불량 또는 불완전한지를 나타냅니다.
  • Y는 보낸 응답의 종류를 나타냅니다.
  • Z는 명령에 대한 추가 정보를 제공합니다.

연결을 연 서버에서 수신된 응답은 원격 서버에서 명령을 수락했으며 다음 명령을 받을 준비가 되었는지 또는 오류가 발생했는지 여부를 알려줄 수 있습니다.

첫 번째 숫자(X)는 전송된 명령의 성공 여부를 나타내기 때문에 특히 잘 이해해야 합니다. 다음은 가능한 값과 해당 의미입니다.

응답 코드 의미
2.y.z 전송된 명령이 원격 서버에서 성공적으로 완료되었습니다. 원격 서버가 다음 명령을 받을 준비가 되었습니다.
3.y.z 명령이 수락되었으나 작업 완료를 위해 원격 서버는 추가 정보가 필요합니다. 전송 서버는 필요한 정보를 사용해서 새 명령을 전송해야 합니다.
4.y.z 명령이 일시적일 수 있는 이유로 인해 원격 서버에서 수락되지 않았습니다. 전송 서버는 나중에 연결을 다시 시도하여 원격 서버가 명령을 성공적으로 수락할 수 있는지 확인해야 합니다. 전송 서버는 성공적인 연결이 완료될 때까지(2.y.z 코드 표시) 또는 영구히 실패할 때까지(5.y.z 코드 표시) 연결을 계속 다시 시도합니다.
일시적 오류의 예로 원격 서버의 저장 공간 부족을 들 수 있습니다. 더 많은 공간을 사용할 수 있게 되면 원격 서버가 명령을 성공적으로 받아들일 수 있습니다.
5.y.z 복구할 수 없는 이유로 원격 서버에서 명령을 수락하지 않았습니다. 전송 서버는 연결을 다시 시도하지 않으며, 메시지를 보낸 사용자에게 배달 못 함 보고서를 보냅니다.
복구할 수 없는 오류의 예로 존재하지 않는 전자 메일 주소로 전송된 메시지를 들 수 있습니다.

위의 표는 RFC 5321(Simple Mail Transfer Protocol), 섹션 4.2.1에서 제공하는 정보를 토대로 작성되었습니다. SMTP 응답 코드의 두 번째(Y) 및 세 번째(Z) 자리 숫자에 대한 설명을 비롯한 추가 정보는 이 섹션 및 4.2.24.2.3 섹션에 포함되어 있습니다.

OPEN 명령

성공적인 응답: 220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>

실패 응답: Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

실패할 수 있는 이유:

  • 대상 SMTP 서비스를 사용할 수 없습니다.
  • 대상 방화벽이 제한되어 있습니다.
  • 원본 방화벽이 제한되어 있습니다.
  • 대상 SMTP 서버의 FQDN 또는 IP 주소가 올바르지 않습니다.
  • 포트 번호가 잘못되었습니다.

EHLO 명령

성공적인 응답: 250 mail1.fabrikam.com Hello [<sourceIPaddress>]

실패 응답: 501 5.5.4 Invalid domain name

실패할 수 있는 이유:

  • 도메인 이름에 잘못된 문자가 있습니다.
  • 대상 SMTP 서버에 대한 연결이 제한되어 있습니다.

참고

EHLO는 RFC 5321에 정의되어 있는 ESMTP(Extended Simple Message Transfer Protocol) 동사입니다. ESMTP 서버는 초기 연결 동안 해당 기능을 보급할 수 있습니다. 이러한 기능에는 수락되는 최대 메시지 크기 및 지원되는 인증 방법이 포함됩니다. HELO는 RFC 821에 정의되어 있는 이전 SMTP 동사입니다. 대부분의 SMTP 메시징 서버에서는 ESMTP 및 EHLO를 모두 지원합니다. 연결하려는 Exchange 이외 서버가 EHLO를 지원하지 않는 경우 대신 HELO를 사용할 수 있습니다.

MAIL FROM 명령

성공적인 응답: 250 2.1.0 Sender OK

실패 응답: 550 5.1.7 Invalid address

실패할 수 있는 이유: 보낸 사람의 전자 메일 주소에 구문 오류가 있습니다.

실패 응답: 530 5.7.1 Client was not authenticated

실패할 수 있는 이유: 대상 서버는 익명 메시지 제출을 허용하지 않습니다. 텔넷을 사용하여 익명 연결을 허용하도록 구성된 수신 커넥터가 없는 사서함 서버에 직접 메시지를 전송하려고 하면 이 오류가 나타납니다.

RCPT TO 명령

성공적인 응답: 250 2.1.5 Recipient OK

실패 응답: 550 5.1.1 User unknown

실패할 수 있는 이유: 지정된 받는 사람이 없습니다.