Internet Message Access Protocol

Internet Message Access Protocol は、メールサーバ上の電子メールにアクセスし操作するためのプロトコル。クライアントとサーバがTCPを用いて通信する場合、通常サーバー側はIMAP4ではポート番号143番、IMAP over SSLでは993番を利用する。

1. 概要
-----

POP はユーザが利用中のサーバからクライアントにメールをダウンロードし、ダウンロードがすんだメールはサーバから削除することを標準的な利用形態とするのに対し、IMAP はメールをメールサーバ上に保存したまま管理する。この特性により、Webメールや複数のコンピュータから同一アカウントのメールを読む場合に、メールの未読状態等の属性やメールフォルダの構成等が一元的に管理できる利点がある。もともとはオリジナルであるIMAPが開発されたが、IMAP2、IMAP3、IMAP2bisなどが作られ、現在IMAPと呼ぶときにはIMAP4を指すことが通常である。プロトコルの仕様が複雑であったためあまり広く普及しなかったが、Netscape や Internet Explorer に標準で含まれているメールソフトが IMAP4 に対応し、また相互接続試験やプロトコルの様々な改訂・拡張により相互運用性が高まったため、利用者が広がった。

2. POPとの比較
----------

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

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

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

3. IMAPの採用例
-----------

3.1. サーバ
--------

Courier-IMAP
[1]
Cyrus IMAP server
Dovecot

3.2. クライアント
-----------

メール 
Becky! Internet Mail
Eudora
Gaucho Internet Mailer
Gnus
Mew
Microsoft Entourage
Microsoft Outlook Express
Microsoft Outlook
Mozilla Thunderbird
Mutt
Opera M2
Shuriken Pro4
Sylpheed
sweetmail Kuro
sweetmail namera
Winbiff
Wanderlust
秀丸メール

3.3. ウェブメールクライアント
-----------------

RoundCube
SquirrelMail

3.4. サービス
---------

MobileMe - Apple
AIM Mail - AOL
Gmail - Google
Outlook.com - マイクロソフト

4. RFC
------

5464}} - The IMAP METADATA Extension
5258}} - Internet Message Access Protocol version 4 - LIST Command Extensions
5257}} - Internet Message Access Protocol - ANNOTATE Extension
5256}} - Internet Message Access Protocol - SORT and THREAD Extensions
5255}} - Internet Message Access Protocol Internationalization
5182}} - IMAP Extension for Referencing the Last SEARCH Result
5162}} - IMAP4 Extensions for Quick Mailbox Resynchronization
5161}} - The IMAP ENABLE Extension
5092}} - IMAP URL Scheme
5032}} - WITHIN Search Extension to the IMAP Protocol
4978}} - The IMAP COMPRESS Extension
4959}} - IMAP Extension for Simple Authentication and Security Layer  Initial Client Response
4731}} - IMAP4 Extension to SEARCH Command for Controlling What Kind of Information Is Returned
4551}} - IMAP Extension for Conditional STORE Operation or Quick Flag Changes Resynchronization
4550}} - Internet Email to Support Diverse Service Environments  Profile
4549}} - Synchronization Operations for Disconnected IMAP4 Clients
4469}} - Internet Message Access Protocol  CATENATE Extension ////
4468}} - Message Submission BURL Extension
4467}} - Internet Message Access Protocol  - URLAUTH Extension
4466}} - Collected Extensions to IMAP4 ABNF
4416}} - Goals for Internet Messaging to Support Diverse Service Environments
4315}} - Internet Message Access Protocol  - UIDPLUS extension
4314}} - IMAP4 Access Control List  Extension
3691}} - IMAP UNSELECT command
3516}} - IMAP4 Binary Content Extension
3503}} - Message Disposition Notification  profile for IMAP
3502}} - IMAP MULTIAPPEND Extension
3501}} - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
3348}} - IMAP4 Child Mailbox Extension
2971}} - IMAP4 ID extension
2683}} - IMAP Implementation Recommendations
2595}} - Using TLS with IMAP4, POP3 and ACAP
2359}} - IMAP4 UIDPLUS extension ////
2342}} - IMAP4 Namespace
2221}} - IMAP4 Login Referrals
2195}} - IMAP/POP AUTHorize Extension for Simple Challenge/Response
2193}} - IMAP4 Mailbox Referrals
2192}} - IMAP URL Scheme ////
2180}} - IMAP4 Multi-Accessed Mailbox Practice
2177}} - IMAP4 IDLE command
2095}} - IMAP/POP AUTHorize Extension for Simple Challenge/Response ////
2088}} - IMAP4 non-synchronizing literals
2087}} - IMAP4 QUOTA extension
2086}} - IMAP4 ACL extension ////
2061}} - IMAP4 COMPATIBILITY WITH IMAP2BIS
2060}} - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1 ////
1733}} - DISTRIBUTED ELECTRONIC MAIL MODELS IN IMAP4
1732}} - IMAP4 COMPATIBILITY WITH IMAP2 AND IMAP2BIS
1731}} - IMAP4 Authentication Mechanisms
1730}} - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4 ////
1203}} - INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 3
1176}} - INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 2
1064}} - INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 2 ////

5. 関連項目
-------

POP3
JMAP
SMTP
プッシュ型電子メール
修正UTF-7
メールサーバ

6. 脚注
-----