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

インストール

1 つの Composer パッケージ、PHP 8.2 以降、curl と json の拡張。

インストール

現在のリリースは 0.0.1 です。TypeScript SDK のすべてのメソッドに対応するメソッドを同じ名前で備えており、欠けたものや異なるリクエストを送るものがあれば、パッケージのパリティチェックがビルドを失敗させます。

composer require openemail/sdk
send_email.php
<?php use OpenEmail\OpenEmail; require __DIR__ . '/vendor/autoload.php'; $client = new OpenEmail(); $email = $client->emails->send([    'from' => 'Acme Billing <[email protected]>',    'to' => '[email protected]',    'subject' => 'Your September invoice',    'html' => '<p>Invoice attached.</p>',]); echo $email['id'], ' ', $email['status'], PHP_EOL;

new OpenEmail() はキーを OPENEMAIL_API_KEY から読むため、コードには資格情報が残りません。設定を別の場所で管理している場合は apiKey: を渡してください。どこからでも 1 つのクライアントを使うには、OpenEmail::init() で一度だけ設定し、OpenEmail::getClient() で取得します。

レスポンスはデコード済みの JSON で、連想配列です。そのため $email['id'] で id を読めます。キーは API の名前をそのまま使い、メソッドとその名前付き引数も同様です。だから scheduledAt や idempotencyKey: は、ここでも API リファレンスと同じ書き方になります。

send が戻っても、メッセージが送信済みとは限りません。スケジュール送信やキャンセル可能な送信は queued または scheduled として返り、後から確定します。呼び出しが戻ったという事実ではなく、status を読んでください。

動作環境

PHP 8.2 以降で、ほぼすべてのビルドに含まれる curl と json の拡張以外に依存関係はありません。リクエストはクライアントごとに 1 つの cURL ハンドルを通るため、API への 2 回目のリクエストは 1 回目が開いた接続を再利用し、圧縮されたレスポンスは cURL が展開します。

PHP-FPM、Apache、コマンドライン、そしてキューワーカー、RoadRunner、FrankenPHP のような常駐ワーカーで動きます。PHP-FPM では各リクエストがまっさらな状態から始まるため、クライアントはリクエストごとに 1 回作ります。常駐プロセスでは、プロセスの存続期間中 1 つを使い続けてください。pcntl_fork の後は、子プロセスは親の接続を再利用せず、自分の接続を開きます。

クライアントはメールを送信しメールボックスを読み取れるワークスペース API キーを保持するため、置き場所はサーバー、ジョブ、または自分のマシンで動くツールです。キーは環境変数かフレームワークのシークレットに保管し、決してコードに書かないでください。