Zur Dokumentation springen
PHP

Installation

Ein Composer-Paket, PHP 8.2 und neuer, mit den Erweiterungen curl und json.

Installation

Das aktuelle Release ist 0.0.1. Es hat eine Methode für jede Methode des TypeScript-SDK, unter demselben Namen, und die Paritätsprüfung des Pakets lässt den Build fehlschlagen, wenn eine fehlt oder eine andere Anfrage sendet.

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() liest den Schlüssel aus OPENEMAIL_API_KEY, der Code enthält also keine Zugangsdaten. Übergeben Sie apiKey:, wenn Ihre Konfiguration woanders liegt. Um einen Client von überall zu erreichen, konfigurieren Sie ihn einmal mit OpenEmail::init() und holen ihn mit OpenEmail::getClient().

Eine Antwort ist das dekodierte JSON als assoziatives Array, $email['id'] liest also die id. Die Schlüssel behalten die Namen der API, ebenso die Methoden und ihre benannten Argumente. Deshalb werden scheduledAt und idempotencyKey: hier genauso geschrieben wie in der API-Referenz.

Dass send zurückkehrt, heißt nicht, dass die Nachricht verschickt ist. Ein geplanter oder abbrechbarer Versand kommt als queued oder scheduled zurück und steht erst später fest. Lesen Sie status, nicht die Tatsache, dass der Aufruf zurückgekehrt ist.

Wo es läuft

PHP 8.2 und neuer, mit den Erweiterungen curl und json, die fast jeder Build mitbringt, und keiner weiteren Abhängigkeit. Anfragen laufen über ein cURL-Handle pro Client, sodass eine zweite Anfrage an die API die Verbindung wiederverwendet, die die erste geöffnet hat, und cURL entpackt eine komprimierte Antwort für Sie.

Er läuft unter PHP-FPM, Apache, auf der Kommandozeile und in langlebigen Workern wie einem Queue-Worker, RoadRunner oder FrankenPHP. Unter PHP-FPM beginnt jede Anfrage neu, bauen Sie den Client also einmal pro Anfrage. In einem langlebigen Prozess behalten Sie einen für die gesamte Lebensdauer des Prozesses. Nach pcntl_fork öffnet der Kindprozess eine eigene Verbindung, statt die des Elternprozesses wiederzuverwenden.

Der Client trägt einen Workspace-API-Schlüssel, der Mail senden und das Postfach lesen kann. Er gehört daher auf einen Server, in einen Job oder in ein Tool, das auf Ihrem eigenen Rechner läuft. Bewahren Sie den Schlüssel in einer Umgebungsvariable oder in den Secrets Ihres Frameworks auf, nie im Code.