POPとはPost Office Protocolの略で、インターネットを通じてメールサーバーからメールクライアント(例:Microsoft Outlook、Mozilla Thunderbirdなど)に電子メールを受信するためのプロトコルです。
メールを「送信」する際に利用されるSMTP(Simple Mail Transfer Protocol)と対をなすプロトコルで、SMTPによって送られてきたメールを受信する際に利用されます。
参考 SMTPとは?
このページでは、ネットワーク初心者向けにPOP (Post Office Protocol) とは何か?どのような仕組みでメールの受信を行っている?メール送受信の仕組みは?についてわかりやすく解説します。
ネットワークエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識です。またネットワークエンジニアでなくてもITに関する仕事をしている方であれば知っておいて損はない知識です。是非最後までご覧ください。
POPとは?わかりやすく
POPとはPost Office Protocolの略で、メールを受信する際に利用する通信プロトコルです。
OSI参照モデルで言うと第7層:アプリケーション層で動作するプロトコルです。
例えば、あなたがMicrosoft Outlookを使用している場合、OutlookはPOP3プロトコルを使ってメールサーバー(例:Gmail、Yahoo Mailなど)に接続し、新しいメールをチェックしてダウンロードを実施します。このプロセスは、ユーザーがメールクライアントを開くたび、または特定の間隔で自動的に行われます。
もしPOP3が存在していなければ、メールサーバまで届いた自分の端末上でメールを確認することができず、都度メールサーバにログインして確認を行う必要が出てきてしまいます。そのような不便さを解消するために考え出されたのがPOPというプロトコルです。
メール送受信の仕組み(SMTP/POP)
POPを利用したメール受信の仕組みを以下にわかりやすく図解しました。
メールは「送信」に関するSMTPと、「受信」に関するPOPという2つのプロトコルが有機的に動作することにより実現されています。
この図からわかるように、POPはSMTPによりメールサーバに届けられたメールを受信側のコンピュータに取り出すために利用されます。もしPOPがなければ、相手からのメールがメールサーバに届けられたとしても、自分のコンピュータでメールを確認することができません。
日常生活に置き換えて説明すると、自宅のポストまで手紙を届けるのがSMTPの役割。ポストから手紙を取り出すのがPOP (Post Office Protocol) の役割です。
POPの仕組み
送信者からメールサーバまでメールが転送された後に、どのようにPOPがメール受信を行うか?を見ていきます。以下図の枠内がここでの説明範囲です。
POPがメールを取り出す仕組みを簡単にまとめると以下の3ステップに分けられます。
具体的にはメールサーバとメーラーの間でPOPコマンドを介してやり取りがなされます。
コマンド | 説明 |
---|---|
USER | 認証するユーザー名を通知 |
PASS | 認証するユーザーのパスワードを通知 |
LIST | 指定されたメールのサイズを通知 |
RETR | 指定されたメールをコンピュータに取り出す |
DELE | 指定されたメールをメールサーバーから削除する |
QUIT | メールサーバとの接続を終了する |
ポイントは、POP3もSMTPと同様にTCPを利用してコネクションを確立するという点です。
よく上記の内容が各種資格試験で出題されるのでしっかりと頭に入れておきましょう。
また、SMTPではポート番号「25」が利用されましたが、POP3では「110」が利用されます。こちらも、基本知識として押さえておきたい内容です。
【詳解】POP3の動作原理:POP3セッションの概要
ここではエンジニアを目指す方向けにさらに詳しくPOP3の動作原理を深堀して解説します。
POP3セッションは、クライアントがメールサーバーに接続し、一連のコマンドを送信してメールの取得や削除などを行うプロセスです。セッションをさらに細かく分類すると以下のフェーズに分けることができます。
- 接続フェーズ
- 認証フェーズ
- トランザクションフェーズ
- 更新フェーズ
- 切断フェーズ
各フェーズでのコマンドの使用
----クライアントがサーバーに接続---- [クライアント] CONNECT [サーバー] +OK POP3 server ready ----ユーザー名の送信---- [クライアント] USER myusername [サーバー] +OK User name accepted ----パスワードの送信---- [クライアント] PASS mypassword [サーバー] +OK Password accepted, user logged in ----メールボックス内のメール数とサイズを確認---- [クライアント] STAT [サーバー] +OK 2 320 (2メッセージ、合計320オクテット) ----メール一覧の取得---- [クライアント] LIST [サーバー] +OK 2 messages 1 120 2 200 ----最初のメールの取得---- [クライアント] RETR 1 [サーバー] +OK 120 octets <メールの内容> ----最初のメールの削除---- [クライアント] DELE 1 [サーバー] +OK Message 1 deleted ----セッションの終了---- [クライアント] QUIT [サーバー] +OK POP3 server signing off (更新フェーズで削除が実行される)
- 接続フェーズ:
- クライアントはメールサーバーのPOP3ポート(通常は110または995)に接続します。
- サーバーは応答として「+OK」メッセージを送信します。
- 認証フェーズ:
USER <username>
: クライアントはユーザー名をサーバーに送信します。PASS <password>
: ユーザー名が受け入れられると、パスワードを送信します。- サーバーはこれらの認証情報を検証し、成功すれば「+OK」、失敗すれば「-ERR」を返します。
- トランザクションフェーズ:
STAT
: メールボックス内のメッセージ数とサイズを確認します。LIST
: メールボックス内の全メッセージの一覧を取得します。各メールには一意の識別子が割り当てられます。RETR <message_number>
: 特定のメッセージを取得します。DELE <message_number>
: 特定のメッセージを削除マークします(この時点ではまだサーバーから削除されません)。NOOP
: サーバーに接続が生きていることを通知します。RSET
: すべての削除マークをリセットします。
- 更新フェーズ:
- トランザクションフェーズが終了すると、削除マークされたすべてのメッセージがサーバーから実際に削除されます。
- 切断フェーズ:
QUIT
: セッションを終了します。このコマンドを受信すると、サーバーは更新フェーズを実行し、セッションを終了します。
この一連のコマンドと応答は、POPを使用してメールサーバーとの通信を行う典型的な流れを示しています。メールクライアントはこれらのコマンドを使って、サーバーからメールを取得、削除、または状態を確認します。
なお、実際のメールの内容やサーバーからの詳細な応答は、具体的なサーバーの設定やメールの内容によって異なります。
POP:バージョンの違い
POPプロトコルは、メールをメールサーバーからメールクライアントに転送するために開発されました。このプロトコルにはいくつかのバージョンがあり、それぞれに特徴があります。
バージョン | 発表年 | 主な特徴 | 差異点 |
---|---|---|---|
POP1 | 1984年 | 初期のバージョン。基本的なメール取得機能のみ。 | ・シンプルなメール取得に限定 ・現代では使用されていない |
POP2 | 1985年 | ユーザー認証機能が追加された。 | ・ユーザー名とパスワードによる認証が導入 ・POP1に比べセキュリティが向上 |
POP3 | 1988年 | 現代でも広く使われるバージョン。改良された認証、複数メッセージの取り扱い、状態管理などが追加。 | ・トランザクションと更新フェーズによる効率的なメッセージ管理 ・より堅牢な認証とセキュリティ |
ポイント POP3が現代で一般的に利用される理由
- 成熟したプロトコル
- POP3は長年にわたって開発され、安定している。多くのメールシステムやクライアントでサポートされています。
- シンプルさ
- POP3は基本的な機能に特化しており、メールのダウンロードと削除というシンプルな操作に適しています。これにより、使いやすさと低いシステム要求が実現されています。
- 広範な対応
- 多くのメールサービスプロバイダーがPOP3をサポートしており、異なるプラットフォームやデバイス間での互換性が高い。
- オフラインアクセス
- メールがローカルにダウンロードされるため、オフラインでもメールを閲覧できる利点があります。
これらの要因により、POP3は現代でもメール通信の重要なプロトコルとして広く利用されています。ただし、複数デバイスでのメールの同期やサーバー上でのメール管理には制限があるため、これらの機能が重要な場合はIMAPなどの他のプロトコルが推奨されます。
関連 IMAPとは? / POPとIMAPの違い
ネットワーク学習の決定版(ネットワークエンジニアを目指すなら必見!)
↑ページ数が多く誰でも手軽に読める内容ではありませんが、ネットワークエンジニアであれば、ほぼ全員が一度は読んだことがある超・有料書籍。是非一度読破しておきたい1冊のご紹介です。
読者特典> 0から学ぶネットワーク入門