Telnet を使用して Exchange サーバー上の SMTP 通信をテストするUse Telnet to test SMTP communication on Exchange servers

Telnet を使用して、メッセージングサーバー間の SMTP (Simple Mail Transfer Protocol) 通信をテストできます。You can use Telnet to test Simple Mail Transfer Protocol (SMTP) communication between messaging servers. SMTP は、あるメッセージングサーバーから別のメッセージングサーバーに電子メールメッセージを送信するために使用されるプロトコルです。SMTP is the protocol that's used to send email messages from one messaging server to another. メッセージングサーバーに SMTP コマンドを手動で送信できるため、メッセージの送受信に問題がある場合は、Telnet を使用すると便利です。Using Telnet can be helpful if you're having trouble sending or receiving messages because you can manually send SMTP commands to a messaging server. 戻り値として、サーバーは通常の接続で返される応答で応答します。In return, the server will reply with responses that would be returned in a typical connection. これらの結果は、メッセージの送受信ができない理由を解明するのに役立つ場合があります。These results can sometimes help you to figure out why you can't send or receive messages.

Telnet を使用して SMTP 通信をテストし、次のことを行うことができます。You can use Telnet to test SMTP communication to:

  • インターネットから Exchange 組織へのメールフローをテストします。Test mail flow from the Internet into your Exchange organization.

  • Exchange からインターネット上の別のメッセージングサーバーへのメールフローをテストします。Test mail flow from your Exchange to another messaging server on the Internet.

ヒント

Telnet を使用して SMTP 接続をテストする代わりに、Microsoft リモート接続アナライザーを使用することができhttps://testconnectivity.microsoft.com/ます。Did you know that, instead of using Telnet to test SMTP connectivity, you can use the Microsoft Remote Connectivity Analyzer at https://testconnectivity.microsoft.com/? リモート接続アナライザーを使用して、実行する接続テスト (この場合は受信 SMTP 電子メール) を選択し、表示される指示に従ってください。With the Remote Connectivity Analyzer, you can choose the connectivity test you want to do, in this case Inbound SMTP Email, and follow the instructions shown. ここでは、入力する必要がある情報を確認し、テストを実行して、結果を得ることができます。It'll step you through the information you need to enter, run the test for you, and then give you the results. 試してみてください。Give it a try!

事前に必要な知識What do you need to know before you begin?

  • 予想所要時間: 15 分Estimated time to complete: 15 minutes

  • Exchange のアクセス許可は、このトピックの手順には適用されません。Exchange permissions don't apply to the procedures in this topic. これらの手順は、Exchange サーバーまたはクライアントコンピューターのオペレーティングシステムで実行されます。These procedures are performed in the operating system of the Exchange server or a client computer.

  • このトピックでは、Windows に含まれている Telnet クライアントを使用する方法について説明します。This topic shows you how to use Telnet Client, which is included with Windows. サードパーティの Telnet クライアントでは、このトピックで説明されているものとは異なる構文が必要になる場合があります。Third-party Telnet clients might require syntax that's different from what's shown in this topic.

  • このトピックの手順では、TCP ポート25を使用して匿名接続を許可する、インターネットに接続されたサーバーに接続する方法について説明します。The steps in this topic show you how to connect to an Internet-facing server that allows anonymous connections using TCP port 25. このサーバーにインターネットから接続しようとしている場合は、Exchange サーバーが TCP ポート25上のインターネットから到達可能であることを確認する必要があります。If you're trying to connect to this server from the Internet, you need to make sure your Exchange server is reachable from the Internet on TCP port 25. 同様に、Exchange サーバーからインターネット上のサーバーに到達しようとしている場合は、Exchange サーバーが TCP ポート25でインターネットへの接続を開くことができるかどうかを確認する必要があります。Similarly, if you're trying to reach a server on the Internet from your Exchange server, you need to make sure your Exchange server can open a connect to the Internet on TCP port 25.

  • TCP ポート2525を使用する受信コネクタがあることがわかります。You might notice some Receive connectors that use TCP port 2525. これらは内部受信コネクタで、匿名の SMTP 接続を受け付けるためには使用されません。These are internal Receive connectors and aren't used to accept anonymous SMTP connections.

  • リモートメッセージングサーバー上の接続をテストしている場合は、Exchange サーバーでこのトピックの手順を実行する必要があります。If you're testing a connection on a remote messaging server, you should run the steps in this topic on your Exchange server. リモートメッセージングサーバーは、多くの場合、SMTP 接続が行われる IP アドレスが、送信者の電子メールアドレスのドメインと一致していることを確認するように設定されます。Remote messaging servers are often set up to make sure the IP address where the SMTP connection is coming from matches the domain in the sender's email address.

  • このトピックの手順で使用可能なキーボード ショートカットについては、「Exchange 管理センターのキーボード ショートカット」を参照してください。For information about keyboard shortcuts that may apply to the procedures in this topic, see Keyboard shortcuts in the Exchange admin center.

ヒント

問題がある場合は、Exchange のフォーラムで質問してください。次のフォーラムにアクセスしてください。Exchange ServerExchange OnlineExchange Online ProtectionHaving problems? Ask for help in the Exchange forums. Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection.

手順 1: コンピューターに Telnet クライアントをインストールするStep 1: Install the Telnet Client on your computer

Windows のほとんどのバージョンでは、Telnet クライアントをインストールして使用できるようにする必要があります。On most versions of Windows, you'll need to install the Telnet client before you can use it. Telnet クライアントをインストールするには、「Telnet クライアントのインストール」を参照してください。To install it, see Install Telnet Client.

手順 2: 宛先 SMTP サーバーの FQDN または IP アドレスを検索するStep 2: Find the FQDN or IP address of the destination SMTP server

ポート25で Telnet を使用して SMTP サーバーに接続するには、完全修飾ドメイン名 (FQDN) (たとえば、mail.contoso.com) または SMTP サーバーの IP アドレスを使用する必要があります。To connect to an SMTP server by using Telnet on port 25, you need to use the fully-qualified domain name (FQDN) (for example, mail.contoso.com) or the IP address of the SMTP server. FQDN または IP アドレスがわからない場合は、Nslookup コマンドラインツールを使用して、宛先ドメインの MX レコードを見つけることができます。If you don't know the FQDN or IP address, you can use the Nslookup command-line tool to find the MX record for the destination domain.

注意

ネットワークポリシーが原因で、Nslookup ツールを使用してインターネット上のパブリック DNS サーバーにクエリを実行できない場合があります。Network policies might prevent you from using the Nslookup tool to query public DNS servers on the Internet. 別の方法として、インターネット上で利用可能な任意の DNS 参照 web サイトまたは MX レコード参照 web サイトの1つを使用することもできます。As an alternative, you can use one of the freely-available DNS lookup or MX record lookup web sites on the Internet.

  1. コマンドプロンプトで「nslookup」と入力し、enter キーを押します。At a command prompt, type nslookup, and then press Enter. このコマンドによって、Nslookup セッションが開きます。This command opens the Nslookup session.

  2. 「Set type = mx」と入力し、Enter キーを押します。Type set type=mx, and then press Enter.

  3. MX レコードを特定するドメインの名前を入力します。Type the name of the domain for which you want to find the MX record. たとえば、fabrikam.com ドメインの MX レコードを検索するには、「fabrikam.com」と入力し、enter キーを押します。For example, to find the MX record for the fabrikam.com domain, type fabrikam.com., and then press Enter.

    注意

    末尾のピリオド () を使用する場合When you use a trailing period ( . ) を使用して、ドメイン名に既定の DNS サフィックスが誤って追加されないようにします。), you prevent any default DNS suffixes from being unintentionally added to the domain name.

    コマンドの出力は次のようになります。The output of the command looks like this:

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
<span data-ttu-id="2302a-149">相手先の SMTP サーバーとして、MX レコードに関連付けられている任意のホスト名または IP アドレスを使用することができます。</span><span class="sxs-lookup"><span data-stu-id="2302a-149">You can use any of the host names or IP addresses that are associated with the MX records as the destination SMTP server.</span></span> <span data-ttu-id="2302a-150">優先度の値が低い場合 (優先順位 = 10 と 20) は、優先 SMTP サーバーを示します。</span><span class="sxs-lookup"><span data-stu-id="2302a-150">A lower value for preference (preference = 10 vs. 20) indicates a preferred SMTP server.</span></span> <span data-ttu-id="2302a-151">複数の MX レコードと異なる設定値は、負荷分散とフォールトトレランスに使用されます。</span><span class="sxs-lookup"><span data-stu-id="2302a-151">Multiple MX records and different values of preference are used for load balancing and fault tolerance.</span></span>
  1. Nslookup セッションを終了する準備ができたら、「exit」と入力して enter キーを押します。When you're ready to end the Nslookup session, type exit, and then press Enter.

手順 3: Telnet をポート 25 で使用して SMTP 通信をテストするStep 3: Use Telnet on Port 25 to test SMTP communication

この例では、次の値を使用しています。In this example, we're going to use the following values. サーバー上でコマンドを実行するときは、組織の SMTP サーバー、ドメインなどのこれらの値を1つに置き換えます。When you run the commands on your server, replace these values with ones for your organization's SMTP server, domain, etc.

  • 宛先 SMTP サーバー: mail1.fabrikam.comDestination SMTP server: mail1.fabrikam.com

  • 移行元ドメイン: contoso.comSource domain: contoso.com

  • 送信者の電子メールアドレス: chris@contoso.comSender's e-mail address: chris@contoso.com

  • 受信者の電子メールアドレス: kate@fabrikam.comRecipient's e-mail address: kate@fabrikam.com

  • メッセージの件名: Contoso 社からのテストMessage subject: Test from Contoso

  • メッセージ本文: これはテストメッセージですMessage body: This is a test message

ヒント

Telnet クライアントのコマンドでは、大文字と小文字は区別されません。The commands in the Telnet Client aren't case-sensitive. この例の SMTP コマンドの動詞は、わかりやすくするために大文字になっています。The SMTP command verbs in this example are capitalized for clarity. 宛先の SMTP サーバーに接続した後、Telnet セッションで backspace キーを使用することはできません。You can't use the backspace key in the Telnet session after you connect to the destination SMTP server. SMTP コマンドを誤って入力した場合は、Enter キーを押して、もう一度コマンドを入力する必要があります。If you make a mistake as you type an SMTP command, you need to press Enter, and then type the command again. 認識されない SMTP コマンドまたは構文エラーによって、次のようなエラーメッセージが表示されます。500 5.3.3 Unrecognized commandUnrecognized SMTP commands or syntax errors result in an error message that looks like this: 500 5.3.3 Unrecognized command

  1. コマンドプロンプトウィンドウを開き、「 telnet」と入力して enter キーを押します。Open a Command Prompt window, type telnet, and then press Enter.

    このコマンドによって、Telnet セッションが開きます。This command opens the Telnet session.

  2. set localecho」と入力し、enter キーを押します。Type set localecho, and then press Enter.

    この省略可能なコマンドを使用すると、入力した文字を表示できます。また、一部の SMTP サーバーでは必要になる場合があります。This optional command lets you view the characters as you type them, and it might be required for some SMTP servers.

  3. set logfile <filename>」と入力し、enter キーを押します。Type set logfile <filename>, and then press Enter.

    この省略可能なコマンドを使用すると、ログ記録が有効になり、Telnet セッションのログファイルが指定されます。This optional command enables logging and specifies the log file for the Telnet session. ファイル名のみを指定した場合、ログファイルは現在のフォルダーに配置されます。If you only specify a file name, the log file is located in the current folder. パスとファイル名を指定する場合は、ローカルコンピューター上のパスを指定する必要があります。また、パスとファイル名を Windows DOS 8.3 形式で入力する必要があります (短い名前をスペースなしで入力する必要があります)。If you specify a path and file name, the path needs to be on the local computer, and you might need to enter the path and file name in the Windows DOS 8.3 format (short name with no spaces). パスが存在する必要がありますが、ログファイルは自動的に作成されます。The path needs to exist, but the log file is created automatically.

  4. OPEN mail1.fabrikam.com 25」と入力し、enter キーを押します。Type OPEN mail1.fabrikam.com 25, and then press Enter.

  5. EHLO contoso.com」と入力し、enter キーを押します。Type EHLO contoso.com, and then press Enter.

  6. MAIL FROM:<chris@contoso.com>」と入力し、enter キーを押します。Type MAIL FROM:<chris@contoso.com>, and then press Enter.

  7. RCPT TO:<kate@fabrikam.com> NOTIFY=success,failure」と入力し、enter キーを押します。Type RCPT TO:<kate@fabrikam.com> NOTIFY=success,failure, and then press Enter.

    オプションの NOTIFY コマンドは、SMTP が提供する必要がある特定の配信状態通知 (DSN) メッセージ (バウンスメッセージ、配信不能レポート、または Ndr とも呼ばれる) を指定します。The optional NOTIFY command specifies the particular delivery status notification (DSN) messages (also known as bounce messages, nondelivery reports, or NDRs) that the SMTP is required to provide. この例では、メッセージ配信が成功したか失敗したかを DSN メッセージに要求しています。In this example, you're requesting a DSN message for successful or failed message delivery.

  8. DATA」と入力し、enter キーを押します。Type DATA, and then press Enter.

  9. Subject: Test from Contoso」と入力し、enter キーを押します。Type Subject: Test from Contoso, and then press Enter.

  10. もう一度 Enter キーを押します。Press Enter again.

    Subject: フィールドとメッセージ本文の間に空白行が必要です。A blank line is needed between the Subject: field and the message body.

  11. This is a test message」と入力し、enter キーを押します。Type This is a test message, and then press Enter.

  12. ピリオド () を入力します。Type a period ( . ) を入力して、再度 Enter キーを押します。), and then press Enter.

  13. SMTP サーバーとの接続を解除するQUITには、「」と入力し、enter キーを押します。To disconnect from the SMTP server, type QUIT, and then press Enter.

  14. Telnet セッションを閉じるには、 quit「」と入力して enter キーを押します。To close the Telnet session, type quit, and then press Enter.

上記の手順を使用して成功したセッションは次のようになります。Here's what a successful session using the steps above looks like:

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: Telnet セッションでの成功メッセージとエラーメッセージStep 4: Success and error messages in the Telnet Session

このセクションでは、前の例で使用したコマンドの成功と失敗の応答に関する情報を提供します。This section provides information about the success and failure responses to the commands that were used in the previous example.

注意

RFC 5321 で定義されている3桁の SMTP 応答コードは、すべての SMTP メッセージングサーバーで同じですが、応答のテキストの説明は少し異なる場合があります。The three-digit SMTP response codes that are defined in RFC 5321 are the same for all SMTP messaging servers, but the text descriptions in the responses might be slightly different.

SMTP 応答コードSMTP reply codes

SMTP サーバーは、さまざまな数値応答コードを使用してコマンドに応答します。その際、次のように指定します。SMTP servers respond to commands with a variety of numerical reply codes in the format of x.y.z where:

  • X は、コマンドが良好、不良、または不完全であったかどうかを示します。X indicates whether the command was good, bad, or incomplete.

  • Y は、送信された応答の種類を示します。Y indicates the kind of response that was sent.

  • Z コマンドに関する追加情報を提供します。Z provides additional information about the command

接続を開いたサーバーが応答を受信すると、リモートサーバーがコマンドを受け入れたかどうかを確認し、その応答があるか、またはエラーが発生したかを知ることができます。When a response is received by the server that opened the connection, it can tell whether the remote server accepted the command and is ready for the next one, or if an error occurred.

最初の桁 (X) は、送信されたコマンドの成功または失敗を示すため、特に理解しておく必要があります。The first digit (X) is particularly important to understand because it indicates the success or failure of the command that was sent. 使用可能な値とその意味を次に示します。Here are its possible values, and their meanings.

応答コードReply code 意味Meaning
2. z2.y.z 送信されたコマンドは、リモートサーバーで正常に完了しました。The command that was sent was successfully completed on the remote server. リモートサーバーは、次のコマンドの準備ができています。The remote server is ready for the next command.
3. z3.y.z コマンドは受け付けられましたが、操作を完了するには、リモートサーバーに詳細情報が必要です。The command was accepted but the remote server needs more information before the operation can be completed. 送信側サーバーは、必要な情報を含む新しいコマンドを送信する必要があります。The sending server needs to send a new command with the needed information.
4. z4.y.z このコマンドは、リモートサーバーによって、一時的な可能性があるために受け入れられませんでした。The command wasn't accepted by the remote server for a reason that might be temporary. 送信側サーバーは、後で再接続を試みて、リモートサーバーがコマンドを正常に受け付けることができるかどうかを確認する必要があります。The sending server should try to connect again later to see if the remote server can successfully accept the command. 送信側サーバーは、接続が正常に完了するまで (つまり、2× z コードで示されます)、または完全に失敗する (5. z コードで示される) まで、接続の再試行を続行します。The sending server will continue to retry the connection until either a successful connection is completed (indicated by a 2.y.z code) or fails permanently (indicated by a 5.y.z code).
一時的なエラーの例として、リモートサーバー上の記憶領域が不足している場合があります。An example of a temporary error is low storage space on the remote server. 空き領域が使用可能になると、リモートサーバーはコマンドを正常に受け付けることができるようになります。Once more space is made available, the remote server should be able to successfully accept the command.
5. z5.y.z 回復不可能な理由により、このコマンドはリモートサーバーによって受け付けられませんでした。The command wasn't accepted by the remote server for a reason that is isn't recoverable. 送信側サーバーは接続を再試行せず、メッセージを送信したユーザーに配信不能レポートを送り返します。The sending server won't retry the connection and will send a non-delivery report back to the user who sent the message.
回復不能なエラーの例としては、存在しない電子メールアドレスに送信されるメッセージが挙げられます。An example of an unrecoverable error is a message that's sent to an email address that doesn't exist.

上記の表は、 RFC 5321 (Simple Mail Transfer Protocol) (section 4.2.1)によって提供される情報に基づいています。The table above is based on information provided by RFC 5321 (Simple Mail Transfer Protocol), section 4.2.1. このセクションには、2番目 (Y) および 3 (Z) の SMTP 応答コードの説明を含む追加情報が、セクション4.2.2および4.2.3に記載されています。Additional information, including descriptions of the second (Y) and third (Z) digits of SMTP reply codes is included in this section, and in sections 4.2.2 and 4.2.3.

[開く] コマンドOPEN command

成功した応答:220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>Successful response: 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 failedFailure response: Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

考えられる失敗の原因Possible reasons for failure

  • 相手先の SMTP サービスが利用できない状態にある。The destination SMTP service is unavailable.

  • 宛先ファイアウォールの制限。Restrictions on the destination firewall.

  • 送信元のファイアウォールの制限。Restrictions on the source firewall.

  • 宛先の SMTP サーバーの FQDN または IP アドレスが正しくない。Incorrect FQDN or IP address for the destination SMTP server.

  • ポート番号が正しくありません。Incorrect port number.

EHLO コマンドEHLO command

成功した応答:250 mail1.fabrikam.com Hello [<sourceIPaddress>]Successful response: 250 mail1.fabrikam.com Hello [<sourceIPaddress>]

失敗応答:501 5.5.4 Invalid domain nameFailure response: 501 5.5.4 Invalid domain name

考えられる失敗の原因Possible reasons for failure

  • ドメイン名に無効な文字が含まれています。Invalid characters in the domain name.

  • 宛先の SMTP サーバーでの接続制限。Connection restrictions on the destination SMTP server.

注意

EHLO は、RFC 5321 で定義されている拡張簡易メッセージ転送プロトコル (ESMTP) 動詞です。EHLO is the Extended Simple Message Transfer Protocol (ESMTP) verb that's defined in RFC 5321. ESMTP サーバーは、最初の接続時に機能について通知することができます。ESMTP servers can advertise their capabilities during the initial connection. これらの機能には、受信したメッセージの最大サイズと認証方法が含まれます。These capabilities include the maximum accepted message size and supported authentication methods. HELO は、RFC 821 で定義されている以前の SMTP コマンドです。HELO is the older SMTP verb that is defined in RFC 821. ほとんどの SMTP メッセージング サーバーは、ESMTP および EHLO をサポートしています。Most SMTP messaging servers support ESMTP and EHLO. 接続しようとしている Exchange 以外のサーバーが EHLO をサポートしていない場合は、HELO を代わりに使用できます。If the non-Exchange server that you're trying to connect to doesn't support EHLO, you can use HELO instead.

MAIL FROM コマンドMAIL FROM command

成功した応答:250 2.1.0 Sender OKSuccessful response: 250 2.1.0 Sender OK

失敗応答:550 5.1.7 Invalid addressFailure response: 550 5.1.7 Invalid address

考えられる失敗の原因: 送信者の電子メールアドレスに構文エラーがあります。Possible reasons for failure: A syntax error in the sender's e-mail address.

失敗応答:530 5.7.1 Client was not authenticatedFailure response: 530 5.7.1 Client was not authenticated

考えられる失敗の原因: 宛先サーバーが匿名メッセージの送信を受け付けません。Possible reasons for failure: The destination server doesn't accept anonymous message submissions. このエラーは、Telnet を使用して、匿名接続を受け入れるように構成された受信コネクタを持たないメールボックスサーバーに直接メッセージを送信しようとした場合に表示されます。You receive this error if you try to use Telnet to submit a message directly to a Mailbox server that doesn't have a Receive connector that's configured to accept anonymous connections.

RCPT TO コマンドRCPT TO command

成功した応答:250 2.1.5 Recipient OKSuccessful response: 250 2.1.5 Recipient OK

失敗応答:550 5.1.1 User unknownFailure response: 550 5.1.1 User unknown

考えられる失敗の原因: 指定された受信者が存在しません。Possible reasons for failure: The specified recipient doesn't exist.