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

変更履歴

パッケージのすべてのリリースを新しい順に掲載します。

0.0.1

最初のリリースです。このリリースを切った時点の TypeScript SDK 全体を網羅しています。41 の名前空間にわたる 430 のメソッドが、それぞれ TypeScript と同じ名前で提供され、そのすべてが対応する TypeScript のメソッドとバイト単位で同じリクエストを送ります。

  • OpenEmail\OpenEmail には、emails、threads、templates から providerImports、dnsConnections、account まで、すべての名前空間のプロパティがあり、それぞれのメソッドは TypeScript の名前をそのまま使います。
  • リクエストボディは、API の camelCase の名前をそのままキーにした連想配列で、オプションは idempotencyKey: や apiKey: のような名前付き引数です。レスポンスはデコードされた連想配列として返ります。
  • ページ分割されるすべてのリソースには、Page を 1 つ返す list、すべてのアイテムを配列として返す listAll、そこに達したときにだけ次のページを取得する Generator を返す iterate があります。PeoplePage、TempMessagesPage、AddressBookPage、AddressBook、BatchResult、TemplateSends は、一覧以上のものを含む答えを運びます。
  • API による拒否は、ApiException またはエラーの種類に対応するそのサブクラスをスローします。これは status、type、errorCode、param、docUrl、requestId、retryAfterSeconds、fields、body と、isValidation() や isStepUpRequired() のようなメソッドを持ちます。応答がまったくない場合は NetworkException をスローし、期限を過ぎたときは isTimeout() が true になります。呼び出しそのものの誤りは、何かが送信される前に InvalidArgumentException をスローします。いずれも OpenEmailException を実装しています。
  • new OpenEmail() と OpenEmail::createClient() は、省略したものを OPENEMAIL_API_KEY、OPENEMAIL_ACCESS_TOKEN、OPENEMAIL_BASE_URL から読み取り、OpenEmail::init()、OpenEmail::getClient()、OpenEmail::resetClient() は 1 つの共有クライアントを管理します。OpenEmail::createTempMail() は資格情報なしで使い捨て受信箱を開きます。
  • accessToken: は OAuth アクセストークン、またはそれを返す callable(各リクエストの前に呼び出されます)を受け取ります。すべてのメソッドは、1 回の呼び出しだけ別のキーで実行するための apiKey: を受け取り、tempMail のメソッドは inboxToken: を受け取ります。資格情報を運ぶすべての引数には #[\SensitiveParameter] が付いています。
  • OpenEmail::verifyWebhookSignature() は配信を定数時間で検証し、5 分より古い配信を拒否し、デコードされたイベントを返します。署名は、大文字小文字を問わないヘッダーの配列、$_SERVER、Symfony や Laravel のヘッダーバッグ、または PSR-7 のリクエストから読み取ります。
  • OpenEmail::toBase64()、isApiKey()、isAccessToken()、isSealed()、resolveLanguage()、languageByCode()、isRtlLanguage() は TypeScript SDK のヘルパーにあたり、そのパッケージのルートがエクスポートする値の集合はすべて、OpenEmail\Constants のクラスです。
  • 必要なのは、curl と json の拡張を備えた PHP 8.2 以降だけです。リクエストはクライアントごとに 1 つの cURL ハンドルを通り、リクエストの間も接続を開いたままにし、pcntl_fork の後は新しい接続を開きます。timeout: は 1 回の試行全体の上限です。Psr18HttpClient を使うと、代わりに Guzzle、Symfony HttpClient、その他の PSR-18 クライアントを通して送ります。
  • 読み取り、送信、そして繰り返しても安全なすべての書き込みは、408、500、502、503、504 のときにバックオフ付きでリトライされ、429 のときは Retry-After が 1 分以下の場合にだけリトライされます。すべての送信は、リトライで再利用される冪等性キーを持ちます。
  • クライアントは、このマシン以外に対して暗号化されていない http: で資格情報を送ることを拒否し、0.0.0.0 上のベース URL を拒否し、リクエストを分割してしまうヘッダーを拒否し、raw->request() がベース URL のオリジンの外に出ることを決して許しません。