社畜の所業

社畜の所業

Microsoft365の機能について解説をしていきたいと思います。このブログの情報をご活用いただければ幸いです。たまに他の情報も取り入れていきたいと思います。

※このサイトはPR記事を含みます。

【Microsoft365参考書】telnetとは?どんなときに使うのか解説

telnetとは?どんなときに使うのか解説

 

コマンドプロンプトで telnet(テルネット)というコマンドを利用することで、メールの送信や通信のテストをおこなうことができます。

この記事では、

  • telnetとは何か
  • どんな仕組みなのか
  • 実際の確認方法

を初心者向けにわかりやすく解説します。

 

 

 

 

telnetとは?

telnetとは、特定のサーバーに直接接続して通信確認を行うためのコマンドです。

簡単に言うと、

「相手のサーバーがちゃんと応答しているかを確認する道具」

です。

もともとはリモートログイン用のプロトコルですが、現在では主に通信テスト用として使われます。

また、実際にメールを送信することができます。

 

telnet の基本構成

telnet は次の 2 つで成り立っています。

① telnet クライアント
  • あなたのパソコンで動く
  • 文字を送る役割
② telnet サーバー
  • 相手のコンピュータで待ち受けている
  • 受け取った文字を解釈して、結果を返す

この 2 つが TCP という安定した通信方式でつながります。

 

 

telnetの仕組み

インターネット通信では、サーバーごとに「ポート番号」という入り口があります。

メールの場合、主に次のポートを使います。

  • 25番ポート(SMTP)
  • 587番ポート(SMTP Submission)

telnetは、このポートに直接アクセスして

  • 接続できるか?
  • 相手が応答するか?

を確認する仕組みです。

つまり、

「そのサーバーは生きているか?」を直接確認できるツール

ということです。

 

telnet を使うための事前準備

Windows では telnet クライアントが既定で無効であるため、有効化する必要があります。

有効化手順

1. コントロールパネルを開きます。

2. [プログラムと機能] >[Windows の機能の有効化または無効化]をクリックします。

3. [Telnet クライアント] にチェックを入れます。

 

 

 

telnet で指定するサーバーは?

telnet で指定するサーバーは次のいずれかです。

  • メールを受信する側の SMTP サーバー(MX レコード)
  • 自分の組織の SMTP サーバー(送信・中継用)

 

基本原則:SMTP は「受信側」に話しかける

SMTP はもともと「送信側が、受信側のメールサーバーに直接話しかける」プロトコルです(RFC 5321)。

そのため telnet で指定するサーバーは、「そのメールアドレスを受け取る責任を持つサーバー」になりますので、ドメインの MX レコードを指定します。

手順
  1. 宛先ドメインの MX レコードを調べる
  2. その MX に書かれているホスト名に telnet する
  3. ポート 25 を指定する

telnet example.mail.protection.outlook.com 25

 

 

送信なのに、実は受信サーバーに預けている?

telnet SMTP テストは感覚的にこうです。

[あなた / telnet]
        ↓
[相手の SMTP 受付窓口(MXレコード)]
        ↓
[相手のメールシステム内部]
        ↓
[受信者のメールボックス]

  • telnet = 受付窓口まで持っていく人
  • SMTP サーバー = 郵便局

という関係です。

 

 

 

telnet での SMTP セッションの中身

telnetで実行している操作の流れは以下のとおりです。

 

① 接続

telnet example.mail.protection.outlook.com 25

TCP/25 に接続し、サーバーが応答

220 example.mail.protection.outlook.com ESMTP ready

220 = 「準備完了」コード。

 

② HELO / EHLO

HELO client.example.com

意味:

「私は client.example.com です」

  • SMTP はまず身元表明が必須
  • HELO は拡張 SMTP(ESMTP)用

 

 

③ MAIL FROM(エンベロープ送信者)

MAIL FROM:<sender@example.com>

意味:

「このメールの差出人はこれ」
これは ヘッダーの From: とは別で、
配送用のエンベロープ情報です。

 

④ RCPT TO(宛先)

RCPT TO:<user@example.net>

意味:

「この宛先に配送してほしい」

複数回送ると複数宛先になります。

サーバーはここで配送可否を判断。

 

⑤ DATA(本文開始)

DATA

サーバー応答:

354 Start mail input; end with <CRLF>.<CRLF>

意味:
「本文を送っていい?」

 

⑥ メール本文(ヘッダー+ボディ)

From: sender@example.com (ヘッダーFrom)

To: user@example.net (ヘッダー To)

Subject: Test Mail (件名)

This is test mail (本文)
.

※最後に [. (ドット)] を入れることでメールが送信されます。

 

 

⑦ QUIT

QUIT

  • SMTP セッション終了
  • サーバーがキューに投入

 

実行例

sender@example.com から user@example.net にメールを送信する場合、コマンドプロンプトを起動し以下の流れで実行します。

 

telnet example.mail.protection.outlook.com 25

HELO

MAIL FROM:<sender@example.com>

RCPT TO:<user@example.net>

DATA

From: sender@example.com

To: user@example.net

Subject: Test Mail

x-mailer: test

This is test mail
.

 

MAIL FROM と From を別のメールアドレスにすることもできます。

 

it-bibouroku.hateblo.jp

 

it-bibouroku.hateblo.jp