Javamail-api-overview

提供:Dev Guides
移動先:案内検索

JavaMail API-概要

JavaMail APIは、プラットフォームおよびプロトコルに依存しないフレームワークを提供して、メールおよびメッセージングアプリケーションを構築します。 JavaMail APIは、メールシステムを構成するオブジェクトを定義する一連の抽象クラスを提供します。 これは、電子メッセージの読み取り、作成、および送信用のオプションパッケージ(標準拡張機能)です。

JavaMailは、システムコンポーネントやインターフェイスなど、メッセージングシステムへのインターフェイスを構築するために使用される要素を提供します。 この仕様は特定の実装を定義していませんが、JavaMailにはRFC822およびMIMEインターネットメッセージング標準を実装するいくつかのクラスが含まれています。 これらのクラスは、JavaMailクラスパッケージの一部として提供されます。

JavaMail APIでサポートされているプロトコルの一部を次に示します。

  • SMTPSimple Mail Transfer Protocol の頭字語。 電子メールを配信するメカニズムを提供します。
  • POPPost Office Protocol の頭字語。 POPは、インターネット上のほとんどの人がメールを取得するために使用するメカニズムです。 各ユーザーの単一のメールボックスのサポートを定義します。 RFC 1939はこのプロトコルを定義しています。
  • IMAPInternet Message Access Protocol の頭字語。 メッセージを受信するための高度なプロトコルです。 各ユーザーに複数のメールボックスのサポートを提供し、さらに、複数のユーザーがメールボックスを共有できます。 RFC 2060で定義されています。
  • MIMEMultipurpose Internet Mail Extensions の頭字語。 。メール転送プロトコルではありません。 代わりに、転送される内容の内容、つまりメッセージの形式、添付ファイルなどを定義します。 ここで有効になる多くの異なるドキュメントがあります:RFC 822、RFC 2045、RFC 2046、およびRFC 2047。 JavaMail APIのユーザーは、通常これらの形式について心配する必要はありません。 ただし、これらの形式は存在し、プログラムで使用されます。
  • * NNTPおよびその他*:サードパーティのプロバイダーによって提供される多くのプロトコルがあります。 それらのいくつかは、ネットワークニュース転送プロトコル(NNTP)、セキュアな多目的インターネットメール拡張機能(S/MIME)などです。

これらの詳細については、以降の章で説明します。

建築

上記のように、JavaアプリケーションはJavaMail APIを使用して電子メールを作成、送信、および受信します。次の図はJavaMailのアーキテクチャを示しています。

JavaMail APIアーキテクチャ

JavaMail APIの抽象的なメカニズムは、JDBC、JNDI、JMSなどの他のJ2EE APIと似ています。 上記のアーキテクチャ図に見られるように、JavaMail APIは2つの主要な部分に分かれています。

  • アプリケーションに依存しない部分:アプリケーションコンポーネントは、アプリケーションプログラミングインターフェイス(API)を使用して、基礎となるプロバイダーや使用プロトコルに関係なく、メールメッセージを送受信します。
  • サービスに依存する部分:サービスプロバイダーインターフェイス(SPI)は、SMTP、POP、IMAP、ネットワークニュース転送プロトコル(NNTP)などのプロトコル固有の言語を話します。 電子メールサービスのプロバイダーをJ2EEプラットフォームにプラグインするために使用されます。