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 레코드 조회 웹 사이트 중 하나를 사용할 수 있습니다.
명령 프롬프트에서 를 입력
nslookup
한 다음 Enter 키를 누릅니다. 이 명령을 입력하면 Nslookup 세션이 열립니다.set type=mx
을(를) 입력한 다음 Enter 키를 누릅니다.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 레코드와 서로 다른 기본 설정 값이 사용됩니다.
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
오류 메시지가 표시됩니다.
명령 프롬프트 창을 열고 를 입력
telnet
한 다음 Enter 키를 누릅니다.이 명령을 입력하면 텔넷 세션이 열립니다.
set localecho
을(를) 입력한 다음 Enter 키를 누릅니다.이 옵션 명령을 사용하면 입력하는 문자를 볼 수 있습니다. 일부 SMTP 서버의 경우에는 이 옵션이 필요할 수도 있습니다.
set logfile <filename>
을(를) 입력한 다음 Enter 키를 누릅니다.이 옵션 명령을 사용하면 로깅이 사용되도록 설정되고 텔넷 세션에 대한 로그 파일이 지정됩니다. 파일 이름만 지정하면 로그 파일은 현재 폴더에 배치됩니다. 경로 및 파일 이름을 지정하면 경로는 로컬 컴퓨터에 있어야 하고 Windows DOS 8.3 형식(공백 없는 약식 이름)으로 경로 및 파일 이름을 입력해야 할 수도 있습니다. 경로는 존재해야 하지만 로그 파일은 자동으로 만들어집니다.
OPEN mail1.fabrikam.com 25
을(를) 입력한 다음 Enter 키를 누릅니다.EHLO contoso.com
을(를) 입력한 다음 Enter 키를 누릅니다.MAIL FROM:<chris@contoso.com>
을(를) 입력한 다음 Enter 키를 누릅니다.RCPT TO:<kate@fabrikam.com> NOTIFY=success,failure
을(를) 입력한 다음 Enter 키를 누릅니다.선택적 NOTIFY 명령은 제공하기 위해 SMTP가 필요한 특정 배달 상태 알림(DSN) 메시지(바운스 메시지, 배달 못 함 보고서 또는 NDR로도 알려져 있음)를 지정합니다. 이 예제에서는 메시지 배달 성공 또는 실패 관련 DSN 메시지를 요청하게 됩니다.
DATA
을(를) 입력한 다음 Enter 키를 누릅니다.Subject: Test from Contoso
을(를) 입력한 다음 Enter 키를 누릅니다.Enter 키를 다시 누릅니다.
Subject: 필드와 메시지 본문 사이에 빈 줄이 하나 필요합니다.
This is a test message
을(를) 입력한 다음 Enter 키를 누릅니다.마침표()
.
를 입력한 다음 Enter 키를 누릅니다.SMTP 서버에서 연결을 끊려면 를 입력
QUIT
한 다음 Enter 키를 누릅니다.텔넷 세션을 닫려면 를 입력
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.2 및 4.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
실패할 수 있는 이유: 지정된 받는 사람이 없습니다.