Apache James
Apache James(アパッチ・ジェームズ)は、Apacheプロジェクト内の電子メールアプリケーションサーバを開発するサブプロジェクトである。Jamesというプロジェクト名は、Java Apache Mail Enterprise Server の頭文字をとったものである。
Webアプリケーションサーバとして有名な、同プロジェクトのApache Tomcatの電子メール版である。
Apache Jamesは、BSDライセンスをベースとしたApache Licenseであり、商用利用も多くされている。
Apache Jamesは、Apache Avalonアプリケーションフレームワークを元に開発されていたので、Apache Avalonが解散したときは、どうしたらよいか混乱した。
そして、Apache James 2.*系以前は、Apache Avalonアプリケーションフレームワークを使用していたが、Apache James3.0系から、OSGiを元にして、Spring Frameworkアプリケーションフレームワークを使用している。
目次
Mailet
Jamesの各機能は、電子メールサーバ上(James)で、メイレット(Mailet)と呼ばれるJavaで記述可能なロジック群により構成されている。メイレットはTomcatでいうサーブレットと同様のものであり、James自体はTomcatと同じくコンテナである。よってJames自体には、実際に電子メールプロトコルに関する各機能は実装されていないが、電子メールサーバとして最低限必要となるであろう、SMTPやPOP3、IMAP4などを扱う部分は、メイレットのサンプル/リファレンス実装としてJamesに添付され提供されており、これらはそのまま使用しても差し支えないほどの完成度を誇っている。このメイレットを駆使することにより、簡単に機能の追加などを可能にし、通常の電子メールサーバを凌駕する電子メールアプリケーションサーバとして機能するというモノである。
MailetとMatcherについて
Mailetは、メールを送信するために必要な処理をする。
Matcherは、メールをいろいろな条件を元に振り分ける処理をする。
James 2.*系以前のアプリケーションフレームワークについて
James 1.*系またはJames 2.*系は、Apache Avalonアプリケーションフレームワークで開発されている。
James 3.0系アプリケーションフレームワークについて
James 3.0系は、OSGiを元にして、Spring Frameworkアプリケーションフレームワークで開発されている。
JAMES Project
- Hupa
- Hupaは、GWTで作成されIMAPを基本に作成したWebメール。
- IMAP
- IMAPは、メールサーバー上の電子メールにアクセスし操作するためのプロトコル。
- jSieve
- jSieveは、Javaで記述された電子メールをする時に不要なメールを削除する等のフィルタリングの機能を提供するための言語。
- jSPF
- jSPFは、Javaで記述された送信者を判別してフィルタリングをするSPF。
- Mime4j
- Mime4jは、電子メールでいろいろな書式を扱えるようにしたMIME。
- Mailet API
- Mailet APIは、電子メールを送信するために必要な処理をできるようにするAPI。
- Mailbox
- Mailboxは、柔軟なメールボックスのストレージをメール(IMAP4、POP3、SMTP、および他のプロトコル)で提供するライブラリ。
- MPT
- MPTは、ApacheのJamesのメールテスト用プロトコルのためのフレームワーク。
- Protocols
- Protocolsは、メールプロトコルの実装、および拡張性に優れた軽量なフレームワークを提供。
- Server
- Serverは、ApacheのJamesのメールサーバー本体。
- Postage
- Postageは、電子メールの交通整理をする、MTAの機能をするもの。
- jDKIM
- jDKIMは、Javaで記述されたDKIMの実装ライブラリ。
Apache Jamesのサブプロジェクト
脚注