Internet Message Access Protocol

提供: フリー百科事典『ウィキペディア(Wikipedia)』

Internet Message Access Protocol(インターネット メッセージ アクセス プロトコル、IMAP) は、メールサーバ上の電子メールにアクセスし操作するためのプロトコル。通常、日本では IMAP または IMAP4 といえば、IMAP Version 4 に国際化対応などの改訂がされた IMAP Version 4 revision 1(IMAP4rev1) のことを指す。クライアントとサーバがTCPを用いて通信する場合、通常サーバー側はIMAP2, IMAP4ではポート番号143番、IMAP3では220番を利用する。

目次

[編集] 概要

電子メールの取り扱いをクライアント/サーバモデルという面で考えた場合、様々なモデルがある。 オフラインモデルは、クライアントがサーバからメッセージを取得し、あとはクライアント側で自由に処理するモデルである。このモデルに特化したプロトコルとして、従来からPOPが存在していた。このモデルは、一度クライアントがメッセージを取得してしまえば、あとはクライアントで自由に処理を行えるという利点がある反面、クライアントにある程度の資源が必要であり、また、複数のクライアントで同じサーバ上のメッセージを協調して取り扱うことが難しいという問題がある。 オンラインモデルは、サーバ上にメールボックスを置き、常時接続してそのまま利用するモデルである。クライアントに必要な資源が少なくて済む反面、 分散ファイルシステム上にメールボックスを置くという古くから存在した方法を用いると、そのメールボックスの保存形式にクライアントが強く依存し、また複数のクライアントから同時に同じメールボックスにアクセスした場合の安全性の問題があった。この問題を解決するために、クライアントがサーバにアクセスする共通のプロトコルとして、IMAPが生まれた。 また、オンラインモデルでは、サーバが停止している、またはサーバに接続できない間、クライアントとしては全くメールを取扱いができないという問題があるため、IMAPでは、オフラインモデルとオンラインモデルのハイブリッドである、切断利用モデルもサポートすることとなった。 切断利用モデルは、オンライン時にクライアントがサーバからメールのオフラインでの利用に必要な最低限の情報を取得し、オフラインでの操作後、再びオンラインになった時に、その間のクライアント/サーバの双方の変更点の同期をとるモデルである。 IMAPはオフラインモデルにも使用できるため、これら3つのモデルをすべてサポートしていることになる。このようにサーバ上にメールを保存するというモデルにより、複数のクライアントからメールを利用する場合にメールの未読状態等の属性やメールフォルダの構成等が一元的に管理できる。

[編集] 歴史

最初のコンセプトは1986年とかなり古いが、実際に広く使われるようになったのは、第4版であるIMAP4に国際化対応などの改定を行った、IMAP4rev1 からである。 上記、3つのモデルをサポートし、様々なクライアント/サーバで利用できる共通のプロトコルであるため、1996年から4度にわたって MailConnect というイベントを開催し、相互接続テストを行うことにより、相互運用性を高めた。 また、検索のようなサーバへの処理の依頼や、切断利用モードでの同期を容易に行えるようにといった様々な要求にこたえるために、2000年に、IETFによりIMAP Extensions Working Group がスタートし、基本仕様の改定や様々な拡張仕様の策定を行っていたが、2008年6月に目的を達成したとして停止した。これにより、IMAP4の仕様は確定したこととなる。

[編集] POPとの比較

POPは以下の利点と欠点を持つ。

  • POPプロトコルは常時接続ではないネットワークアクセスにおいて有利である。
  • ユーザーはメールにローカルコピーを取得し、メールをオフラインで読む事が出来る。
  • メールフォルダはMUAより管理されプロトコルには含まれていない。
  • 通常、メールはサーバから取得された時点で削除される。すなわちサーバは未読のメールだけ保持しておけば良い。
  • 複数の端末からメールを取得すると、別の端末でダウンロードしたローカルコピーにアクセスできない。
  • メールをサーバに保存する手段がない。
  • メールを取得する際にメールの一部のみを取得する手段がオプションとなっている。

IMAPはPOPの利点を活かしつつ欠点を解消している。

  • IMAPプロトコルはオンライン・オフラインいずれでも利用できる。
  • オフライン操作はMUA側でトランザクションログとして保存し、サーバに接続した時点でコミットする事で反映できる。
  • 通常、メールはサーバに常時保存される。ローカルコピーを取得した時点でサーバから削除する事も出来る。
  • 複数の端末からメール状態を一元管理する事が出来る。複数の端末で同じメールを読む事ができる。
  • メールフォルダはプロトコルの一部として標準化されており、メールソフトの種類に関係無くフォルダを管理出来る。
  • メールの一部のみを取得できる。ヘッダのみの取得、マルチパートのテキスト部分のみの取得といった操作が可能。
  • メールをサーバに保存する手段がある。フォルダ全体のスナップショットを別のサーバに転送する事も出来る。
  • IMAP4より古いIMAPはリモート実行によるプロトコルの複雑さとセキュリティ上の懸念があった。IMAP4では改善された。
  • メールサーバはメールのオリジナルを管理しなければならない。大規模システムでは莫大な量のメール管理が必要となる。

[編集] IMAPの採用例

[編集] サーバ

[編集] クライアント

[編集] サービス

[編集] RFC

  • RFC 5464 - The IMAP METADATA Extension
  • RFC 5258 - Internet Message Access Protocol version 4 - LIST Command Extensions
  • RFC 5257 - Internet Message Access Protocol - ANNOTATE Extension
  • RFC 5256 - Internet Message Access Protocol - SORT and THREAD Extensions
  • RFC 5255 - Internet Message Access Protocol Internationalization
  • RFC 5182 - IMAP Extension for Referencing the Last SEARCH Result
  • RFC 5162 - IMAP4 Extensions for Quick Mailbox Resynchronization
  • RFC 5161 - The IMAP ENABLE Extension
  • RFC 5092 - IMAP URL Scheme
  • RFC 5032 - WITHIN Search Extension to the IMAP Protocol
  • RFC 4978 - The IMAP COMPRESS Extension
  • RFC 4959 - IMAP Extension for Simple Authentication and Security Layer (SASL) Initial Client Response
  • RFC 4731 - IMAP4 Extension to SEARCH Command for Controlling What Kind of Information Is Returned
  • RFC 4551 - IMAP Extension for Conditional STORE Operation or Quick Flag Changes Resynchronization
  • RFC 4550 - Internet Email to Support Diverse Service Environments (Lemonade) Profile
  • RFC 4549 - Synchronization Operations for Disconnected IMAP4 Clients
  • RFC 4469 - Internet Message Access Protocol (IMAP) CATENATE Extension (日本語訳)
  • RFC 4468 - Message Submission BURL Extension
  • RFC 4467 - Internet Message Access Protocol (IMAP) - URLAUTH Extension
  • RFC 4466 - Collected Extensions to IMAP4 ABNF
  • RFC 4416 - Goals for Internet Messaging to Support Diverse Service Environments
  • RFC 4315 - Internet Message Access Protocol (IMAP) - UIDPLUS extension
  • RFC 4314 - IMAP4 Access Control List (ACL) Extension
  • RFC 3691 - IMAP UNSELECT command
  • RFC 3516 - IMAP4 Binary Content Extension
  • RFC 3503 - Message Disposition Notification (MDN) profile for IMAP
  • RFC 3502 - IMAP MULTIAPPEND Extension
  • RFC 3501 - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
  • RFC 3348 - IMAP4 Child Mailbox Extension
  • RFC 2971 - IMAP4 ID extension
  • RFC 2683 - IMAP Implementation Recommendations
  • RFC 2595 - Using TLS with IMAP4, POP3 and ACAP
  • RFC 2359 - IMAP4 UIDPLUS extension (RFC 4315によって改訂)
  • RFC 2061 - IMAP4 COMPATIBILITY WITH IMAP2BIS
  • RFC 2060 - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1 (RFC 3501によって改訂)
  • RFC 1733 - DISTRIBUTED ELECTRONIC MAIL MODELS IN IMAP4
  • RFC 1732 - IMAP4 COMPATIBILITY WITH IMAP2 AND IMAP2BIS
  • RFC 1731 - IMAP4 Authentication Mechanisms
  • RFC 1730 - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4 (RFC 2060によって改訂)
  • RFC 1203 - INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 3
  • RFC 1176 - INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 2
  • RFC 1064 - INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 2 (RFC 1176, RFC 1203によって改訂)

[編集] 関連項目

[編集] 外部リンク