A lightweight PHP client for the Posta email API.
- PHP 8.1+
ext-curlext-json
composer require goposta/posta-phpCopy src/PostaClient.php and src/PostaException.php into your project and include them.
use Posta\PostaClient;
$client = new PostaClient('https://posta.example.com', 'your-api-key');$response = $client->sendEmail([
'from' => '[email protected]',
'to' => ['[email protected]'],
'subject' => 'Hello',
'html' => '<h1>Hello World</h1>',
]);
// $response = ['id' => '...', 'status' => 'queued']$response = $client->sendTemplateEmail([
'template' => 'welcome',
'to' => ['[email protected]'],
'template_data' => ['name' => 'John'],
]);$response = $client->sendBatch([
'template' => 'newsletter',
'recipients' => [
['email' => '[email protected]', 'template_data' => ['name' => 'Alice']],
['email' => '[email protected]', 'template_data' => ['name' => 'Bob']],
],
]);
// $response = ['total' => 2, 'sent' => 2, 'failed' => 0, ...]$status = $client->getEmailStatus('email-uuid');
// $status = ['id' => '...', 'status' => 'sent', 'retry_count' => 0, ...]use Posta\PostaException;
try {
$client->sendEmail([...]);
} catch (PostaException $e) {
echo $e->getStatusCode(); // HTTP status code
echo $e->getMessage(); // Error message
$info = $e->getErrorInfo(); // Parsed error details (nullable)
}Contributions are welcome! Please open an issue to discuss proposed changes before submitting a pull request.
This project is licensed under the Apache License 2.0. See LICENSE for details.
Copyright © 2026 Jonas Kaninda