TelnetでPOP3の動作を確認してみよう

TelnetでPOP3の動作を確認してみよう

POP3とSMTPはメールソフト上で動作しているため、 使用者が特に意識することなくメールのやり取りを 行うことが出来るわけですが、エンジニアとしては 実際にどのように動作しているのかは、とても気になるところです。

今回は実際に手を動かしながらPOP3とSMTPの動作について 見ていきましょう。

動作の確認には、「Telnet」コマンドを使用します。

ここでは、下記の条件で確認を行います。 (すべて架空の条件です)

  • SMTPサーバ名:「smtp.test.ne.jp」
  • POPサーバ名:「pop.test.ne.jp」
  • ユーザ名:「aki」
  • パスワード:「itbook」
  • メールアドレス:「aki@test.ne.jp」

実際に試す場合は、実際の環境に合わせて読み替えて下さい。

Telnetでメールを送信する

まずはTelnetを使ってメールを送信してみます。

Telnetでメールサーバにアクセスするときは、 「telnet サーバ名 ポート番号(SMTPの場合のポート番号は25)」 となります。


telnet smtp.test.ne.jp 25
Trying 192.168.1.1...
Connected to smtp.test.ne.jp.
Escape character is \¥'\^\]\¥'.
220 test.ne.jp ESMTP

接続が完了したら、HELOコマンドを利用してユーザ名を入力します。


HELO aki
250-test.ne.jp
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME

続いて、MAILコマンドで送信元のメールアドレスを指定します。

MAIL FROM:aki@test.ne.jp
250 ok

次にRCPTコマンドで送信先のメールアドレスを指定します。


RCPT TO:aki@test.ne.jp
250 ok

次にDATAコマンドでメールの内容の書き込み開始を伝えます。


DATA
354 go ahead

ここからメールの本文を入力していきます。

まず、メールの題名や送信元メールアドレス、宛先メールアドレスを 指定します。

「Subject:」がメールの題名、「From:」が送信元、「To:」が宛先です。 その後に続いてメールの本文を入力していきます。


Subject:This is a test mail.
From:aki@test.ne.jp
To:aki@test.ne.jp
Hello World!!
My name is aki.
.
250 ok 1247107336 qp 13617

本文を入力して最後に「.(ピリオド)」を入力すると、 本文の入力が終了となります。

最後にQUITコマンドでログアウトします。


QUIT
221 test.ne.jp
Connection closed by foreign host.

以上でメールの送信は終了です。

Telnetでメールを受信する

続いてメールを受信してみましょう。 受信する場合は、ポート番号110でメールサーバにTelnet接続します。


telnet itbook.info 110
Trying 192.168.1.2...
Connected to test.ne.jp.
Escape character is \¥'\^\]\¥'.
+OK <test.ne.jp>

接続出来たら、USERコマンドでユーザ名を入力します。


USER aki@test.ne.jp
+OK

続いてPASSコマンドでパスワードを入力します。


PASS itbook
+OK

「OK」が出れば接続完了です。 LISTコマンドを入力してみると、サーバにあるメールのリストが 表示されます。


LIST
+OK
1 1366
.

メールの内容を表示させるには、「RETR メールの番号」を入力します。


RETR 1
+OK
Return-Path: aki@test.ne.jp
Received: from test.ne.jp (HELO aki) (192.168.1.1)
  by 192.168.1.2 with SMTP; 9 Jul 2009 11:40:48 +0900
Subject:This is a test mail.
From:aki@test.ne.jp
To:aki@test.ne.jp
X-UIDL: 1234567890
Hello World!!
My name is aki.
.

先ほど送信したメールの内容が表示されました。 このメールを削除したい場合は、DELEコマンドに続いて メールの番号を指定します。


DELE 1
+OK

ログアウトする場合はQUITコマンドを使用します。


QUIT
+OK
Connection closed by foreign host.

以上がTelnetを使ったメールのやり取りになります。

メール・ソフトも基本的に内部で上記のようなやり取りを行って メールの送受信を行っています。

読者の方の中には、セキュリティ上の問題にも気がついたかもしれません。 パスワードは暗号化されていませんし、送信者の名前も 改ざん出来てしまいそうです。

例えば、メール本文を入力する際に「From:」に続いて入力する メールアドレスを適当な送信元メールアドレスを入力したとしても 送信出来てしまいます。

「Subject:」や「From:」、「To:」など、メール本文に記載する情報は 内容を一切チェックせずに、そのまま送信されてしまいます。

つまり悪意のある人間が簡単に偽装してメールが 送信できてしまうということ。

これを防ぐ技術が、先ほど説明した「POP before SMTP」と 「SMTP AUTH」です。

実際に手を動かして試してみると、今まで気がつかなかった事に 気がつくことがあります。どんどん手を動かしましょう。

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: