インストール
Maven Central にあるアーティファクトが 1 つ、Java 17 以降、依存関係なし。
インストール
現在のリリースは 0.0.1 です。TypeScript SDK のすべてのメソッドに対応するメソッドがあり、どれかが欠けたり異なるリクエストを送ったりすると、パッケージのパリティチェックがビルドを失敗させます。
<dependency> <groupId>uk.openemail</groupId> <artifactId>openemail</artifactId> <version>0.0.1</version></dependency>import java.util.Map;import uk.openemail.Body;import uk.openemail.OpenEmail; public final class FirstEmail { public static void main(String[] args) { OpenEmail client = new OpenEmail(); Map<String, Object> email = client.emails().send(Body.of( "from", "Acme Billing <[email protected]>", "to", "[email protected]", "subject", "Your September invoice", "html", "<p>Invoice attached.</p>" )); System.out.println(email.get("id") + " " + email.get("status")); }}new OpenEmail() はキーを OPENEMAIL_API_KEY から読み取るため、コードに資格情報は含まれません。設定を別の場所に置いている場合は OpenEmail.builder().apiKey(...) を使ってください。
リクエストボディは、API の名前をそのままキーにした Map<String, Object> です。そのため scheduledAt は API リファレンスと同じように書きます。Body.of は、書いた順序を保ち null 値も受け付けるボディを作ります。レスポンスはデコードされた JSON の Map<String, Object> なので、email.get("id") で ID を読み取れます。
send が戻っても、メッセージが送信済みとは限りません。スケジュール送信やキャンセル可能な送信は queued または scheduled として返り、後から確定します。呼び出しが戻ったという事実ではなく、status を読んでください。
動作環境
Java 17 以降で、どの JVM 言語からでも使えます。jar に依存関係はなく、モジュールパス上のアプリケーション向けにモジュール名を uk.openemail としています。
クライアントは不変で、スレッド間で安全に共有できます。アプリケーションの起動時に 1 つ作って使い続けてください。接続を再利用する HttpClient を 1 つ保持します。
クライアントはメールを送信しメールボックスを読み取れるワークスペース API キーを保持するため、置き場所はサーバー、ジョブ、または自分のマシンで動くツールです。キーは環境変数かシークレットストアに保管し、決してコードに書かないでください。