ドキュメント本文へスキップ
Java

ヘルパーと定数

クライアントのメソッド以外にパッケージが定義しているもの。

静的メソッド

メソッド内容
new OpenEmail(), OpenEmail.builder()クライアント。どちらも、省略したものを環境から読み取ります。
OpenEmail.createTempMail()API キーを持たない使い捨て受信箱用のクライアント。
OpenEmail.verifyWebhookSignature()配信の署名を定数時間で検証し、イベントを返します。5 分の許容時間は Duration で変更できます。
OpenEmail.toBase64()添付ファイルのバイト列を表す base64 テキスト。
OpenEmail.isApiKey()値が oe_live_ または oe_test_ の形をしているかどうか。形式の検査であり、そのキーがまだ有効であることの証明ではありません。
OpenEmail.isAccessToken()値が OAuth アクセストークンの形をしているかどうか。1〜512 文字で、oe_ で始まらないものです。
OpenEmail.isSealed()メッセージのボディが暗号文かどうか。2 つの署名形式では、ボディが平文で届いているため false です。
OpenEmail.resolveLanguage(), OpenEmail.languageByCode(), OpenEmail.isRtlLanguage()言語ピッカーに必要な検索。同梱の Languages.ALL テーブルを使います。
client.raw().request()まだメソッドが用意されていないパスを、クライアントの資格情報と再試行ポリシーで呼び出します。

定数

TypeScript SDK がエクスポートする値のセットはすべて、uk.openemail.constants の final クラスで、メンバーごとに同じ名前の定数が 1 つあります。そのため WebhookEvents.EMAIL_DELIVERED は email.delivered です。values() はセット全体を返すので、外部から来た値の確認にも使えます。

Constants.java
List<String> events = WebhookEvents.values();List<String> scopes = List.of(ApiScopes.EMAILS_SEND, ApiScopes.THREADS_READ);boolean known = events.contains("email.delivered"); System.out.println(events.size() + " " + String.join(",", scopes) + " " + PageLimits.MAX_LIMIT + " " + known);
定数内容
OpenEmail.VERSIONパッケージのバージョン。
ApiScopesキー作成画面のためのスコープ語彙。
WebhookEvents, WebhookSignatureHeadersエンドポイントが購読できるイベントと、配信に付くヘッダーの名前。
ErrorTypesApiException.type() が返すエラーの語彙。
PageLimitsほとんどのページ付きリストでの limit の最大値と既定値、MAX_LIMIT と DEFAULT_LIMIT: 100 と 25。一部のリストはそれ以上を受け付け、各メソッドのリファレンスに記載されています。
RuleFields, RuleOperators, RuleActionsルールの条件とアクションを組み立てるための語彙。
MessageEncryptionFormats受信処理が識別できる 5 つのエンベロープ。そのうち 3 つは封緘されています。
CredentialKinds, StepUpMethods, StepUpErrorCodesme().get と me().ping が示す資格情報の種類、確認コードの検証方法、検証が失敗するときのコード。
ThreadSorts、PeopleSorts、FileSorts とその他の *Sorts一覧を並べ替えられる順序。
FormStatuses、BroadcastStatuses、SuppressionReasons とその他の集合リソースのフィールドが取り得る値。各集合は、保持するものにちなんで名付けられています。
Languages.ALL翻訳付きの送信やプレビューが受け付けるすべての言語で、コード、名前、書字方向を持ちます。

オブジェクト

レスポンスはデコードされた JSON の Map<String, Object> です。パッケージが独自の型を作るのは、応答を整形する場合だけです。どれも uk.openemail.result の不変の record で、for ループで行をたどれます。

クラス持っているもの
Pageitems、hasMore、nextCursor。ページ分割されるすべての list から返ります。
PeoplePage同じ内容に seen を加えたもの。contacts().listPeople が返します。
TempMessagesPage同じ内容に expiresAt を加えたもの。tempMail().listMessages が返します。
AddressBookPage, AddressBookunrestricted、addresses、domains。addresses().list(hasMore と nextCursor 付き)と addresses().listAll が返します。
BatchResultitems、sent、failed。emails().sendBatch が返します。
TemplateSendsitems、total、page、pageSize。templates().listSends が返します。
PagedIterableすべてのページの走査。各 iterate が返し、for ループ、stream()、toList() で使えます。
Body, RequestOptions呼び出しが受け取るもの。順序を保ち null 値も受け付けるリクエストボディと、1 回の呼び出しのオプションです。

パッケージがスローする例外はすべて OpenEmailException です。ApiException とそのサブクラス、NetworkException、WebhookSignatureException があります。呼び出しそのものの誤りは、何も送信される前に IllegalArgumentException をスローします。

あえて行わないこと

  • リクエストボディの検証は行いません。ルールの唯一の写しはサーバーのスキーマであり、ここに 2 つ目の写しを置けば、いずれ 2 年前に誰かが固定したバージョンが、新しいサーバーなら受け入れるアドレスを拒否することになります。
  • レスポンスの形を変えるのは 1 つの場合だけです。コレクションの data リストをエンベロープから取り出し、上記の型のいずれかに入れます。それ以外のレスポンスは、API の camelCase のキーのまま、API が送ったとおりに返ります。
  • 非同期メソッドはありません。呼び出しは応答が届くまでスレッドをブロックしますが、仮想スレッドならその負担はわずかです。