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のサブプロジェクト

脚注

外部リンク 

 

オープンソースソフトウェア
Java
メール転送エージェント
James