インターフェース | 説明 |
---|---|
EncodingAware | EncodingAware も実装する DataSource は、データに使用する Content-Transfer-Encoding を指定できます。 |
MessageAware | データコンテンツオブジェクトが動作しているメッセージコンテキストに関する情報を DataContentHandler に提供するために、DataSources によってオプションで実装されるインターフェース。 |
MultipartDataSource | MultipartDataSource は、ボディパーツを含む DataSource です。 |
Part | Part インターフェースは、メッセージと BodyParts の共通の基本インターフェースです。 |
QuotaAwareStore | クォータをサポートするストアによって実装されるインターフェース。 |
UIDFolder | UIDFolder インターフェースは、フォルダー内のメッセージに一意の ID を提供することにより、「切断」操作モードをサポートできるフォルダーによって実装されます。 |
クラス | 説明 |
---|---|
Address | この抽象クラスは、メッセージ内のアドレスをモデル化します。 |
Authenticator | クラス Authenticator は、ネットワーク接続の認証を取得する方法を知っているオブジェクトを表します。 |
BodyPart | このクラスは、マルチパートに含まれるパートをモデル化します。 |
FetchProfile | クライアントは、FetchProfile を使用して、メッセージの範囲についてサーバーからプリフェッチするメッセージ属性をリストします。 |
FetchProfile.Item | この内部クラスは、FetchProfile でリクエストできるすべてのアイテムの基本クラスです。 |
Flags | Flags クラスは、メッセージのフラグのセットを表します。 |
Flags.Flag | この内部クラスは、個々のシステムフラグを表します。 |
Folder | Folder は、メールメッセージのフォルダーを表す抽象クラスです。 |
Header | Header クラスは、ヘッダーを表す名前と値のペアを格納します。 |
Message | このクラスは、メールメッセージをモデル化します。 |
Message.RecipientType | この内部クラスは、メッセージクラスで許可される受信者の型を定義します。 |
MessageContext | メッセージコンテンツが含まれるコンテキスト。 |
Multipart | マルチパートは、複数のボディパーツを保持するコンテナーです。 |
PasswordAuthentication | クラス PasswordAuthentication は、Authenticator によって使用されるデータホルダーです。 |
Provider | プロバイダーは、プロトコルの実装を記述するクラスです。 |
Provider.Type | この内部クラスは、プロバイダー型を定義します。 |
Quota | このクラスは、特定のクォータルートのクォータのセットを表します。 |
Quota.Resource | クォータルート内の個々のリソース。 |
Service | ストアやトランスポートなどのメッセージングサービスに共通の機能を含む抽象クラス。 |
Session | Session クラスはメールセッションを表し、サブクラス化されていません。 |
Store | メッセージを格納および取得するために、メッセージストアとそのアクセスプロトコルをモデル化する抽象クラス。 |
Transport | メッセージ転送をモデル化する抽象クラス。 |
UIDFolder.FetchProfileItem | UID をフェッチするためのフェッチプロファイル項目。 |
URLName | URL の名前。 |
例外 | 説明 |
---|---|
AuthenticationFailedException | この例外は、認証の失敗(ユーザー名やパスワードの誤りなど)が原因で Store または Transport オブジェクトの接続メソッドが失敗した場合にスローされます。 |
FolderClosedException | この例外は、メッセージオブジェクトでメソッドが呼び出され、そのオブジェクトを所有するフォルダーが何らかの理由で停止した場合にスローされます。 |
FolderNotFoundException | この例外は、Folder メソッドが存在しないフォルダーで呼び出された場合にスローされます。 |
IllegalWriteException | 任意のメッセージングオブジェクトの読み取り専用属性で書き込みが試行されたときにスローされる例外。 |
MessageRemovedException | 消去されたメッセージに対して無効なメソッドが呼び出されたときにスローされる例外。 |
MessagingException | メッセージングクラスによってスローされたすべての例外の基本クラス |
MethodNotSupportedException | メソッドが実装でサポートされていない場合にスローされる例外 |
NoSuchProviderException | この例外は、Session が存在しないプロバイダーをインスタンス化しようとしたときにスローされます。 |
ReadOnlyFolderException | この例外は、フォルダーが読み取り専用としてマークされているときにフォルダーの読み取り / 書き込みアクセスを開こうとするとスローされます。 |
SendFailedException | この例外は、メッセージを送信できない場合にスローされます。 |
StoreClosedException | この例外は、メッセージオブジェクトでメソッドが呼び出され、そのオブジェクトを所有するストアが何らかの理由で停止した場合にスローされます。 |
アノテーション型 | 説明 |
---|---|
MailSessionDefinition | JNDI に登録される MailSession を定義するために Jakarta EE アプリケーションによって使用されるアノテーション。 |
MailSessionDefinitions | 1 つ以上の MailSessionDefinition アノテーションを宣言します。 |
Jakarta Mail API は、メールシステムをモデル化するクラスを提供します。jakarta.mail
パッケージは、すべてのメールシステムに共通のクラスを定義します。jakarta.mail.internet
パッケージは、MIME、SMTP、POP3、IMAP などのインターネット標準に基づくメールシステムに固有のクラスを定義します。Jakarta Mail API には、jakarta.mail
パッケージとサブパッケージが含まれています。
Jakarta Mail API の概要については、 Jakarta Mail 仕様を参照してください。
プレーンテキストメッセージを送信するコードは、次のように簡単です。
Properties props = new Properties(); props.put("mail.smtp.host", "my-mail-server"); Session session = Session.getInstance(props, null); try { MimeMessage msg = new MimeMessage(session); msg.setFrom("me@example.com"); msg.setRecipients(Message.RecipientType.TO, "you@example.com"); msg.setSubject("Jakarta Mail hello world example"); msg.setSentDate(new Date()); msg.setText("Hello, world!\n"); Transport.send(msg, "me@example.com", "my-password"); } catch (MessagingException mex) { System.out.println("send failed, exception: " + mex); }
Jakarta Mail ダウンロードバンドルの "demo" ディレクトリには、より完全なサンプルが多数含まれています。
最も一般的な質問への回答については、 Jakarta Mail API FAQ を参照することを忘れないでください。 Jakarta Mail Web サイトには、多くの追加リソースが含まれています。
プロパティJakarta Mail API は、Session
オブジェクト、または Session
オブジェクトの作成に使用される Properties
オブジェクトで設定できる次の標準プロパティをサポートしています。プロパティは常に文字列として設定されます。Type 列は、文字列の解釈方法を示します。例: 使用
props.put("mail.debug", "true");
ブール型の mail.debug
プロパティを設定します。
名前 | タイプ | 説明 |
---|---|---|
mail.debug | boolean | 初期デバッグモード。デフォルトは false です。 |
mail.from | String | InternetAddress メソッド getLocalAddress で使用される現在のユーザーの返信用メールアドレス。 |
mail.mime.address.strict | boolean | MimeMessage クラスは、InternetAddress メソッド parseHeader を使用してメッセージのヘッダーを解析します。このプロパティは、parseHeader メソッドに渡される厳密なフラグを制御します。デフォルトは true です。 |
mail.host | String | ストアとトランスポートの両方のメールサーバーのデフォルトのホスト名。mail.protocol.host プロパティが設定されていない場合に使用されます。 |
mail.store.protocol | String | デフォルトのメッセージアクセスプロトコルを指定します。Session メソッド getStore() は、このプロトコルを実装する Store オブジェクトを返します。デフォルトでは、構成ファイルの最初のストアプロバイダーが返されます。 |
mail.transport.protocol | String | デフォルトのメッセージ転送プロトコルを指定します。Session メソッド getTransport() は、このプロトコルを実装する Transport オブジェクトを返します。デフォルトでは、構成ファイルの最初のトランスポートプロバイダーが返されます。 |
mail.user | String | メールサーバーに接続するときに使用するデフォルトのユーザー名。mail.protocol.user プロパティが設定されていない場合に使用されます。 |
mail.protocol.class | String | 指定されたプロトコルのプロバイダーの完全修飾クラス名を指定します。特定のプロトコルに複数のプロバイダーが存在する場合に使用されます。このプロパティを使用して、デフォルトで使用するプロバイダーを指定できます。プロバイダーは引き続き構成ファイルにリストされている必要があります。 |
mail.protocol.host | String | 指定したプロトコルのメールサーバーのホスト名。mail.host プロパティをオーバーライドします。 |
mail.protocol.port | int | 指定したプロトコルのメールサーバーのポート番号。指定しない場合、プロトコルのデフォルトのポート番号が使用されます。 |
mail.protocol.user | String | 指定されたプロトコルを使用してメールサーバーに接続するときに使用するユーザー名。mail.user プロパティをオーバーライドします。 |
次のプロパティは、Jakarta Mail の EE4J 実装でサポートされていますが、現在、仕様の必須部分ではありません。これらのプロパティの名前、型、デフォルト、セマンティクスは、将来のリリースで変更される可能性があります。
名前 | タイプ | 説明 |
---|---|---|
mail.debug.auth | boolean | デバッグ出力にプロトコル認証コマンド(ユーザー名とパスワードを含む)を含めます。デフォルトは false です。 |
mail.debug.auth.username | boolean | 非プロトコルデバッグ出力にユーザー名を含めます。デフォルトは true です。 |
mail.debug.auth.password | boolean | 非プロトコルデバッグ出力にパスワードを含めます。デフォルトは false です。 |
mail.transport.protocol.address-type | String | 指定されたアドレス型のデフォルトのメッセージ転送プロトコルを指定します。Session メソッド getTransport(Address) は、アドレスが指定された型(たとえば、標準インターネットアドレスの場合は "rfc822" )の場合に、このプロトコルを実装するトランスポートオブジェクトを返します。デフォルトでは、そのアドレス型に設定された最初のトランスポートが使用されます。このプロパティを使用して、Transport クラスの send メソッドの動作をオーバーライドできるため、たとえば、プロパティ mail.transport.protocol.rfc822 を "smtps" に設定することにより、"smtp" プロトコルの代わりに "smtps" プロトコルが使用されます。 |
mail.event.scope | String | イベントの範囲を制御します。(jakarta.mail.event パッケージを参照してください)デフォルトでは、ストア、トランスポート、フォルダーごとに、個別のイベントキューとスレッドがイベントに使用されます。このプロパティが「セッション」に設定されている場合、そのようなすべてのイベントは、現在のセッションの単一のスレッドによって処理される単一のイベントキューに入れられます。このプロパティが "application" に設定されている場合、そのようなすべてのイベントは、現在のアプリケーションの単一のスレッドによって処理される単一のイベントキューに入れられます。(アプリケーションは、コンテキストクラスローダーによって区別されます。) |
mail.event.executor | java.util.concurrent.Executor | デフォルトでは、イベントキューごとに新しいスレッドが作成されます。このスレッドは、これらのイベントのリスナーを呼び出すために使用されます。このプロパティが Executor のインスタンスに設定されている場合、Executor.execute メソッドを使用して、イベントキューのイベントディスパッチャーを実行します。イベントディスパッチャーは、イベントキューが使用されなくなるまで実行されます。 |
Jakarta Mail API はいくつかのシステムプロパティもサポートしています。詳細については、jakarta.mail.internet
パッケージのドキュメントを参照してください。
Jakarta Mail リファレンス実装には、com.sun.mail
のサブパッケージにプロトコルプロバイダーが含まれています。これらのプロトコルプロバイダーへの API は、標準の Jakarta Mail API の一部ではないことに注意してください。移植可能なプログラムはこれらの API を使用しません。
移植性のないプログラムは、(たとえば)返された Folder
オブジェクトを com.sun.mail.imap.IMAPFolder
オブジェクトにキャストすることにより、プロトコルプロバイダーの API を使用できます。同様に、Store
および Message
オブジェクトの場合、標準の Jakarta Mail API から返されます。
プロトコルプロバイダーは、それらのプロバイダーに固有のプロパティもサポートします。IMAP
、POP3
、SMTP
パッケージのパッケージドキュメントに詳細が記載されています。
Session
構成によって制御されるデバッグ出力の出力に加えて、このパッケージのクラスの現在の実装では、次の表で説明するように、Logger
SE を使用して同じ情報を記録します。
ロガー名 | ログレベル | 目的 |
---|---|---|
jakarta.mail | CONFIG | セッションの構成 |
jakarta.mail | FINE | 一般的なデバッグ出力 |
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.