今回から数回に分けて、電子メールプロトコルの「IMAP (Internet Message Access Protocol)」について解説したいと思います。
最初に、簡単に私たちとIMAPとのかかわりについてお話ししたいと思います。私たちオレンジソフトは、Windowsで動作する「Winbiff」という電子メールクライアント(メーラ)を開発、販売しています。1994年の開発当初、世間ではNetWareをはじめとするファイルサーバが普及しつつあるときでした。ファイルサーバは、どのPCでも同じファイルを参照することができるということで、瞬く間にオフィスに普及したわけですが、メーラ開発者として、メールでも同じような環境―どこでも同じようにメールを参照する―を実現したいと考えるのは、とても自然なことでした。これが私たちとIMAPの最初の出合いです。
残念ながら当時のIMAPは、IMAP2bisというバージョンで、日本語のメールボックス名が作成できなかったり、日本語の文字列検索ができないなど、いろいろと問題があり、私たち自身のメール環境の移行は断念しました。結果、「自分たちで使えない機能を作ってもしょうがないよね」と、Winbiffへの搭載も行いませんでしたが、「いつかはIMAP」というのは私たちスタッフ間では既定の路線となっていました。
1996年に、現在の最新バージョンであるIMAP4rev1が登場しました。このバージョンにより、上記の多くの問題は解決し、ついに私たち自身のメール環境をIMAPに移行することになりました。そして、IMAP4rev1をサポートするWinbiff V2betaをリリースしたのが1996年12月31日でした。国内外を見ても、Windowsで動作するIMAPのクライアント実装としては早い部類だったと思います。その後は、WinbiffなどのIMAP関連製品の開発・販売と、IMAP布教活動(笑)を行い、現在に至っています。
前置きはこのくらいにしましょう。IMAPプロトコルについては、「インターネット・プロトコル詳説(8)〜(9)」で解説されていますが、少しおさらいをします。
IMAPは、「Internet Message Access Protocol」の略で、RFC2060(改定作業中)に規定されているプロトコルです。IMAPは、サーバに格納されたメッセージにクライアントからアクセスするための手順を規定しています。主な特徴として以下のようなもの挙げられます。
IMAPは、メッセージアクセスのための豊富な機能を持っていますが、できない&しないこともあります。具体的にいくつかの例を挙げてみます。
Courier-IMAP、Cyrus IMAP、UW IMAP Serverなど、すでに多くの商用&フリーのIMAP対応メールサーバが登場しています。規模や予算に応じて、これらの中からメールサーバを選択することが可能になっています。次々回にはフリーのメールサーバの導入例をご紹介する予定です。
POP(Post Office Protocol)は、現在最も多く使われているメールアクセスプロトコルです。「POPとIMAPはどっちがいいか」というのは時々出てくる話題ですが、この2つのプロトコルは、メール保存に対する基本的な考え方が異なりますので、比較するのは難しいと思います。それぞれにメリット、デメリットがありますので、皆さんの使い方に応じて使い分けてください。なお、ほとんどのIMAPサーバは、POPサーバの機能も持っていますので、サーバを2つ立ち上げる必要はありません。
POPは、メールをクライアントに保存することが前提です。従って、POPサーバはメールをクライアントに受け渡す機能が主で、それ以外の機能は基本的にはありません。そのため非常にシンプルなコマンド体系でサーバもクライアントも共に実装が容易です。
IMAPは、メールをサーバに保存して管理することを前提にしています。従って、メールの管理に必要な機能、例えばフォルダの作成やフラグの管理などの多くのメール管理機能を持っています。これらのリッチな機能を実現するために、多くのコマンドを持ち、かなり複雑なコマンド体系を持っています。POPと比べれば実装は難しいと思います。
IMAPは、このように優れたメッセージプロトコルですが、多くの皆さんにとってあまり身近なものではないと思います。また、導入しようとしても、導入コストに見合ったメリットを説明できないこともあると思います。以下に、当社でのIMAPを用いた簡単な業務改善例を紹介したいと思います。
ユーザーサポートのためのシステムは、専用システムがいくつかのベンダから提供されています(結構高価)が、当社では、IMAPの共有機能を利用し、効率化を実現しています。
サポートでは以下の3つの共有メールボックスが利用されます(図1)。
この方法により、
稟議書などの承認フローが必要なものを、電子メールで処理するのは意外と面倒です。担当者が申請メールを承認者に送り、承認者が承認したら、それを次の承認者に転送する……という通常の紙ベースの流れを電子メールで模倣するわけですが、一番の問題は、申請メールをだれが持っているかを確認できないということです。承認者が出張や病欠などで承認できない状態のときの処理体制が整わないと、安心して使うことができません。
この問題は、IMAPの共有メールボックス機能と拡張機能であるアクセスコントロール機能を使うことで解決できます。
では、当社での稟議承認の構成を紹介しましょう。承認者は1名しかおりませんので、簡単な構成ですが、拡張は容易だと思います(メールアドレス、メールボックス名は変えてあります)。また、S/MIMEの電子署名を用いるようにし、本人確認を行っています。
ここで関与するスタッフは、以下の3者です。
メールボックスとしては、以下に挙げるものを用います。
申請書の流れは以下のようになります。
このように、IMAPを用いることで簡単な業務フローを構築することができます。試してみてはいかがでしょうか。
次回は、IMAPの拡張プロトコルの紹介と、実際にIMAPクライアントが送出するIMAPコマンドを解析してみたいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.