Aller à la documentation
PHP

Installation

Un package Composer, PHP 8.2 et versions ultérieures, avec les extensions curl et json.

Installation

La version actuelle est 0.0.1. Elle a une méthode pour chaque méthode du SDK TypeScript, sous le même nom, et la vérification de parité du package fait échouer le build quand l'une d'elles manque ou envoie une requête différente.

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() lit la clé dans OPENEMAIL_API_KEY : le code ne contient donc aucun identifiant. Passez apiKey: quand votre configuration se trouve ailleurs. Pour atteindre un même client depuis n'importe où, configurez-le une fois avec OpenEmail::init() et récupérez-le avec OpenEmail::getClient().

Une réponse est le JSON décodé sous forme de tableau associatif : $email['id'] lit donc l'id. Les clés gardent les noms de l'API, tout comme les méthodes et leurs arguments nommés, c'est pourquoi scheduledAt et idempotencyKey: s'écrivent ici comme dans la référence de l'API.

Le retour de send ne signifie pas que le message est parti. Un envoi planifié ou annulable revient en queued ou scheduled et se règle plus tard. Lisez status, pas le fait que l'appel a retourné.

Où il s'exécute

PHP 8.2 et versions ultérieures, avec les extensions curl et json que presque toutes les compilations incluent, et aucune autre dépendance. Les requêtes passent par un handle cURL par client : une deuxième requête vers l'API réutilise la connexion ouverte par la première, et cURL décompresse pour vous une réponse compressée.

Il fonctionne sous PHP-FPM, Apache, en ligne de commande et dans les workers de longue durée comme un worker de file d'attente, RoadRunner ou FrankenPHP. Sous PHP-FPM, chaque requête repart de zéro : construisez donc le client une fois par requête. Dans un processus de longue durée, gardez-en un pour toute la vie du processus. Après pcntl_fork, le processus enfant ouvre sa propre connexion au lieu de réutiliser celle du parent.

Le client porte une clé d'API d'espace de travail capable d'envoyer du courrier et de lire la boîte : sa place est donc sur un serveur, dans un job ou dans un outil qui s'exécute sur votre propre machine. Conservez la clé dans une variable d'environnement ou dans les secrets de votre framework, jamais dans le code.