技術解説 · 出典付きの回答

IMAP(Internet Message Access Protocol)とは?仕組みを解説

IMAP(Internet Message Access Protocol)は、リモートサーバーに保存されたメッセージにクライアントからアクセスして管理できるようにする、標準的なメール受信プロトコルです。POP3とは異なり、IMAPは接続しているすべてのデバイス間でメールボックスの状態を同期するため、既読・削除・移動のフラグがどこでも一致します。

IMAPの動作の仕組み

IMAPは、メールクライアントとサーバーの間に持続的な接続を確立します。ユーザーがフォルダーを開くと、クライアントはメールボックス全体をダウンロードするのではなく、メッセージヘッダーの一覧を要求します。実際のメッセージ本文は、ユーザーが特定のメールを選択したときにだけ取得されます。このアーキテクチャにより、フォルダーやメッセージのフラグをサーバー側で管理できるため、モバイル端末で行った変更がすぐにデスクトップのクライアントにも反映されます。

送信者から見たIMAPとPOP3

現代の送信者や開発者にとって、複数のデバイスからアクセスするならIMAPが適しています。POP3は通常、メールを1台のローカルマシンにダウンロードしてサーバーから削除しますが、IMAPはマスターコピーをサーバー上に保持します。これは、さまざまなプラットフォームでやり取りを一元的に確認する必要があるユーザーにとって重要です。送信者は、受信者にシームレスなユーザー体験を提供できるよう、サーバーがIMAPに対応していることを確認してください。

運用上の注意点とセキュリティ

IMAPは通常、暗号化されていない通信にはポート143を、SSL/TLSによる暗号化接続にはポート993を使います。ポート143で平文を使うと、認証情報やメールの内容が平文で送信されるため、セキュリティ上のリスクになります。最近の実装では、データの完全性を守るため、ポート993での暗黙的TLSを厳格に強制しています。メールツールを組み込む開発者は、SendHQの無料ツールを使って、メール全体の健全性を支えるその他のDNS設定を確認できます。

よくある設定ミス

よくある誤りは、IMAPのポートを誤って設定したり、クライアントの設定でSSL/TLSを有効にし忘れたりして、接続がタイムアウトすることです。また、IMAP IDLEコマンドが失敗して、新着メールのリアルタイムのプッシュ通知が届かなくなる問題もよく起こります。管理者は、利用のピーク時にセッションが切断されないよう、想定される数のIMAP同時接続を処理できるようにサーバーを設定する必要があります。

具体的な実装例

一般的なIMAPのワークフローでは、クライアントが認証情報とともにLOGINコマンドを送り、続いてSELECTコマンドでINBOXフォルダーを開きます。サーバーはメッセージのシーケンス番号の一覧を返します。クライアントは次にFETCHコマンドを使い、要求したメッセージIDに基づいて、件名や本文などメッセージの特定の部分を取得します。

よく寄せられる質問

IMAPとSMTPの違いは何ですか?

SMTPは、クライアントからサーバーへ、またはサーバー間でメールを送信するために使われます。IMAPは、サーバーからクライアントへメールを取得して管理するためだけに使われます。

セキュリティのためにはどのIMAPポートを使うべきですか?

暗黙的TLSによる暗号化に対応したポート993を使ってください。これにより、ログイン認証情報とメールのデータが転送中に暗号化されます。

IMAPはすべてのメールをローカルデバイスにダウンロードしますか?

いいえ。IMAPはまずヘッダーを取得し、ユーザーが明示的にメールを開いたときにだけメッセージ全体をダウンロードするため、ローカルのストレージと帯域幅を節約できます。

複数のデバイスで同時にIMAPを使えますか?

はい。IMAPは複数デバイス間の同期を前提に設計されており、複数のクライアントが同じサーバー上のメールボックスにアクセスし、フォルダーの状態を同期させておけます。

一次情報源