Zur Dokumentation springen
PHP

Changelog

Jedes Release des Pakets, neueste zuerst.

0.0.1

Das erste Release. Es deckt das gesamte TypeScript-SDK ab, wie es zum Zeitpunkt dieses Releases stand: 430 Methoden in 41 Namespaces, jede unter ihrem TypeScript-Namen, und jede davon sendet Byte für Byte die Anfrage, die ihr TypeScript-Gegenstück sendet.

  • OpenEmail\OpenEmail hat eine Eigenschaft für jeden Namespace, von emails, threads und templates bis providerImports, dnsConnections und account, und die Methoden darauf behalten ihre TypeScript-Namen.
  • Ein Request-Body ist ein assoziatives Array, dessen Schlüssel die camelCase-Namen der API behalten, und Optionen sind benannte Argumente wie idempotencyKey: und apiKey:. Eine Antwort kommt als decodiertes assoziatives Array zurück.
  • Jede Ressource mit Seiten hat list, das eine Page zurückgibt, listAll, das alle Einträge als Array zurückgibt, und iterate, das einen Generator zurückgibt, der die nächste Seite erst holt, wenn er dort ankommt. PeoplePage, TempMessagesPage, AddressBookPage, AddressBook, BatchResult und TemplateSends tragen die Antworten, die mehr als eine Liste enthalten.
  • Eine Ablehnung durch die API wirft ApiException oder deren Unterklasse für den Fehlertyp, mit status, type, errorCode, param, docUrl, requestId, retryAfterSeconds, fields und body sowie Methoden wie isValidation() und isStepUpRequired(). Gar keine Antwort wirft NetworkException, mit isTimeout(), wenn die Frist abgelaufen ist. Ein Fehler im Aufruf selbst wirft InvalidArgumentException, bevor etwas gesendet wird. Jede davon implementiert OpenEmailException.
  • new OpenEmail() und OpenEmail::createClient() lesen OPENEMAIL_API_KEY, OPENEMAIL_ACCESS_TOKEN und OPENEMAIL_BASE_URL für alles, was Sie weglassen, und OpenEmail::init(), OpenEmail::getClient() und OpenEmail::resetClient() verwalten einen gemeinsamen Client. OpenEmail::createTempMail() öffnet Wegwerf-Postfächer ohne Zugangsdaten.
  • accessToken: nimmt ein OAuth-Zugriffstoken oder ein Callable, das eines zurückgibt, aufgerufen vor jeder Anfrage. Jede Methode nimmt apiKey:, um für einen Aufruf mit einem anderen Schlüssel zu handeln, und die tempMail-Methoden nehmen inboxToken:. Jeder Parameter, der Zugangsdaten trägt, ist mit #[\SensitiveParameter] markiert.
  • OpenEmail::verifyWebhookSignature() prüft eine Zustellung in konstanter Zeit, lehnt eine ab, die älter als fünf Minuten ist, und gibt das decodierte Event zurück. Es liest die Signatur aus einem Array von Headern in beliebiger Schreibweise, aus $_SERVER, aus einem Header-Bag von Symfony oder Laravel oder aus einem PSR-7-Request.
  • OpenEmail::toBase64(), isApiKey(), isAccessToken(), isSealed(), resolveLanguage(), languageByCode() und isRtlLanguage() sind die Helfer des TypeScript-SDK, und jede Wertemenge, die dessen Paketwurzel exportiert, ist eine Klasse in OpenEmail\Constants.
  • Es braucht PHP 8.2 oder neuer mit den Erweiterungen curl und json und sonst nichts. Anfragen laufen über ein cURL-Handle pro Client, das seine Verbindung zwischen Anfragen offen hält und nach pcntl_fork eine neue öffnet, und timeout: begrenzt einen ganzen Versuch. Psr18HttpClient sendet sie stattdessen über Guzzle, Symfony HttpClient oder einen anderen PSR-18-Client.
  • Lesevorgänge, Versände und jeder Schreibvorgang, der gefahrlos wiederholt werden kann, werden bei 408, 500, 502, 503 und 504 mit Backoff wiederholt und bei einem 429 nur, wenn dessen Retry-After eine Minute oder weniger beträgt. Jeder Versand trägt einen Idempotency-Key, den seine Wiederholungen weiterverwenden.
  • Der Client weigert sich, Zugangsdaten über einfaches http: an etwas anderes als diesen Rechner zu senden, lehnt eine Basis-URL auf 0.0.0.0 ab, lehnt einen Header ab, der eine Anfrage aufspalten würde, und lässt raw->request() nie den Origin der Basis-URL verlassen.