手動Telnetセッションを使用してSMTP接続をテストする

公開: 2022-04-04

DigitalOcean、AWS、Vultrなどのサーバープロバイダーは、スパムの通過を阻止するために、電子メールの送信ポート25をブロックします。 ただし、いつでもブロックを解除するように依頼できます。 ポート25がブロックされているかどうかを確認する場合は、手動のtelnetセッションを使用してSMTP接続をテストできます。

SMTP接続エラーはさまざまな方法で解決できますが、コマンドラインで直接検出できます。 Telnetは通常、SMTP接続の障害をテストするために使用されます。 次の手順では、Telnetを使用して電子メールサーバーをテストします。 電子メールサーバーの設定の重要な部分は、SMTPがコマンドライン(Linux)から機能することを確認することです。

Telnetは、コマンドラインからSMTPをチェックするために最も一般的に使用される方法です。 これは、SMTPリレーをテストするための最も一般的な方法でもあります。

目次

SMTPとは何ですか?

SMTPはテキストベースのコネクション型プロトコルであり、メール送信者はコマンド文字列を送信し、信頼できる順序付けられたデータストリームチャネル(多くの場合、伝送制御プロトコル(TCP)接続)を介して必要なデータを提供することにより、メール受信者に接続します。

SMTPセッションは、SMTPクライアント(開始エージェント、送信者、または送信者)からのコマンドと、セッションを開始してセッションパラメーターを交換するSMTPサーバー(リスニングエージェント、または受信者)からの応答で構成されます。 セッションには0個以上のSMTPトランザクションが存在する可能性があります。 3つのコマンド/応答シーケンスがSMTPトランザクションを構成します。

  1. リターンアドレスを設定するためのMAILコマンド。リターンパス、リバースパス、バウンスアドレス、mfrom、またはエンベロープセンダーとも呼ばれます。
  2. メッセージ受信者を確立するには、RCPTコマンドを使用します。 このコマンドは、受信者ごとに1つずつ、必要な回数だけ繰り返すことができます。 封筒にもこれらのアドレスがあります。
  3. メッセージテキストの開始を示すDATA。 エンベロープではなく、メッセージのコンテンツ。 これは、メッセージヘッダーとメッセージ本文の間の空の行で構成されます。 サーバーは2回応答します。最初はDATA命令自体に応答し、テキストを受信する準備ができていることを確認します。もう1つは、データの終わりシーケンスの後で、完全なメッセージを受け入れるか拒否します。

Telnetセッションとは何ですか?

Telnetは、コンピュータにリモートアクセスし、2台のコンピュータ間に双方向の協調的なテキストベースの通信チャネルを確立するためのネットワークプロトコルです。

ユーザーが制御する伝送制御プロトコル/インターネットプロトコル(TCP / IP)ネットワークプロトコルを使用してリモートセッションを作成します。 Web上のハイパーテキスト転送プロトコル(HTTP)とファイル転送プロトコル(FTP)を使用すると、ユーザーは離れた場所にあるコンピューターから特定のファイルを要求できますが、Telnetを使用すると、ユーザーは特定のアプリケーションとそのデータに割り当てられた特権を持つ通常のユーザーとしてログオンできます。コンピューター。

Telnetは、コーダーや、リモートコンピューター上の特定のアプリやデータにアクセスする必要がある人によって最も一般的に使用されます。

Telnetはどのように機能しますか?

Telnetは、離れた場所にあるコンピュータ(通常はサーバー)でコマンドラインを開くためのクライアントサーバープロトコルです。 このユーティリティを使用して、ポートにpingを実行し、ポートが開いているかどうかを判断できます。 Telnetは、仮想端末接続エミュレーターを使用します。これは、標準プロトコルを使用してシステムに接続された物理端末のように機能するコンピューター接続の抽象インスタンスです。 データファイルを通信する必要があるユーザーのために、FTPとTelnetを一緒に利用することができます。

Telnetを使用すると、ユーザーはリモートでマシンに接続できます。これは、システムへのTelnet接続とも呼ばれます。 リモートコンピューターにアクセスするには、ユーザー資格情報の組み合わせを提供する必要があります。これにより、コンピューターに物理的に存在するかのようにコマンドラインを実行できます。 ユーザーのIPアドレスは、物理的な場所に関係なく、ログインに使用したコンピューターではなく、サインインしているコンピューターと一致します。

Telnetの用途は何ですか?

Telnetは、ファイルの編集、プログラムの実行、電子メールのチェックなど、サーバー上でさまざまなタスクを実行するために使用できます。

一部のサーバーでは、簡単なゲームをプレイしたり、天気予報を検索したりするために、Telnetを介してパブリックデータにリモート接続できます。 これらの機能の多くは、ノスタルジックであるため、または特定のデータを必要とする以前のシステムとの互換性があるために存在します。

Telnetを使用すると、ユーザーは、Webサーバーやポートなど、テキストベースの暗号化されていないプロトコルを使用する任意のソフトウェアに接続することもできます。 ユーザーはリモートマシンでcmdを開き、telnetに続けてリモートマシンの名前またはIPアドレスを入力すると、telnetセッションがポートにpingを実行して、ポートが開いているかどうかを確認します。 空白の画面はポートが開いていることを示しますが、ポートが接続されていることを示すエラーメッセージは、ポートが閉じていることを示します。

Telnetのセキュリティ

Telnetは、セキュリティで保護されていない、暗号化されていないプロトコルです。 ユーザーの接続を監視することにより、Telnetセッション中にプレーンテキストで入力されたユーザーのユーザー名、パスワード、およびその他の機密情報を誰でも表示できます。 この情報を使用して、対象のコンピューターにアクセスできます。

Telnetを使用してSMTP接続をテストする

最初にいくつかのテストを実行して、発信ポート25が開いているかどうかを確認します。最初のケースでは、ブロックされたSMTPポート25を示し、2番目のケースではtelnetを使用して電子メールを送信します。

ケース1:ポート25がブロックされている

コマンドラインで次のコマンドを実行します(電子メールの問題が発生しているサーバーでこのコマンドを実行する必要があります)。

 telnet <IP_ADDRESS_OF_REMOTE_MAIL_SERVER> 25

「TRYING...」のようなメッセージを受信して​​いて、発信ポート25がブロックされており、サーバーから電子メールメッセージを送信できないことを意味するものが他にない場合。

ケース2:ポート25が開いている場合:

メールサーバーのIPアドレスがわからない場合は、ログインするメールサーバーを探す必要があります。 このためには、特定のドメインのDNSMXレコードが必要になります。 これは次のコマンドで見つけることができます

nslookup -type = mx DOMAIN_NAME

SMTPは、25、465、または587の3つのポートのいずれかを使用します。これらのポートは、MicrosoftOutlookでよく使用されます。 SMTPリレーが25以外のポートを使用する場合は、メール交換サーバーからのnslookup応答で提供されるポートを利用します。 管理者に問い合わせるか、メール交換サーバーにアクセスしてプロトコルを調べ、SMTPが使用するポートを確認することができます。

SMTPサーバーにログインするには:

 telnet <IP_ADDRESS_OF_MAIL_SERVER> <PORT>

接続している場合は、メールの送信を続行できます

EHLOまたはHELOコマンドは、SMTP電子メールテスターのメールサーバーに送信する必要がある最初のコマンドです。 これは、TelnetクライアントとSMTPサーバーとの会話を開始する簡単な歓迎です。

 EHLO <DOMAIN_NAME>
SMTP接続をテストします

SMTPサーバーが受け入れるSMTPコマンドがここに表示されます。

MAIL FROMコマンドは、実際に実行する必要のある次のコマンドです。 バウンスが送信されるアドレスは、これによって決定されます。

 メール送信元:<[メール保護]>

これで、MAIL FROMコマンドが発行された後、RCPTTOコマンドを送信できます。 このコマンドは、指定された受信者にメッセージを送信するようにSMTPメールサーバーに指示します。

 RCPT TO:<[メール保護]> 

DATAコマンドは、メッセージ本文を開始する前に実行する最後のコマンドです。 このコマンドは、残りのメッセージがメッセージの本文として送信されることをSMTPメールサーバーに通知します。

 データ

件名:<SUBJECT>を入力し、Returnキーを押します。

<テストメッセージ>と入力し、Returnキーを押します。

メッセージが終了したら、SMTPサーバーにメッセージが終了したことと、SMTPメールサーバーにメッセージを受け入れてもらいたいことを通知する必要があります。 これは、1行にピリオドを配置することで実現されます。 メッセージの書き込み中に1行のピリオドが必要な場合は、2つのピリオドを使用して、最初のピリオドを2番目のピリオドからエスケープします。

「OK」というメッセージが表示され、その後にIDコードが表示されます。 メッセージが配信されました。

Telnetウィンドウに戻り、quitと入力してSMTPサーバー接続を終了してから、quitと入力してTelnetセッションを終了します。

 終了する

結論

テストを完了すると、電子メールサーバー、またはそれにアクセスするために使用したアドレスと情報に問題がないことを確認できます。

送信元の電子メールアドレスが無効であるとSMTPサーバーから通知された場合は、間違って入力した可能性があります。 また、メールアカウントに問題がある可能性もあります。そのため、新しいメールクライアントでアカウントを機能させることができません。

うまくいけば、新しい電子メールクライアントから離れているときにTelnet経由でSMTPサーバーをテストすることで、発生している電子メールの問題の考えられる原因をすべて絞り込むことができます。