goposta / posta-php
PHP client for the Posta email API
1.1.0
2026-04-25 16:11 UTC
Requires
- php: >=8.1
- ext-curl: *
- ext-json: *
This package is not auto-updated.
Last update: 2026-04-25 16:20:11 UTC
README
A lightweight PHP client for the Posta email API.
Requirements
- PHP 8.1+
ext-curlext-json
Installation
Composer
composer require goposta/posta-php
Manual
Copy src/PostaClient.php and src/PostaException.php into your project and include them.
Usage
use Posta\PostaClient; $client = new PostaClient('https://posta.example.com', 'your-api-key');
Send Email
$response = $client->sendEmail([ 'from' => 'sender@example.com', 'to' => ['recipient@example.com'], 'subject' => 'Hello', 'html' => '<h1>Hello World</h1>', ]); // $response = ['id' => '...', 'status' => 'queued']
Send Template Email
$response = $client->sendTemplateEmail([ 'template' => 'welcome', 'to' => ['user@example.com'], 'template_data' => ['name' => 'John'], ]);
Send Batch Emails
$response = $client->sendBatch([ 'template' => 'newsletter', 'recipients' => [ ['email' => 'alice@example.com', 'template_data' => ['name' => 'Alice']], ['email' => 'bob@example.com', 'template_data' => ['name' => 'Bob']], ], ]); // $response = ['total' => 2, 'sent' => 2, 'failed' => 0, ...]
Get Email Status
$status = $client->getEmailStatus('email-uuid'); // $status = ['id' => '...', 'status' => 'sent', 'retry_count' => 0, ...]
Error Handling
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) }
Contributing
Contributions are welcome! Please open an issue to discuss proposed changes before submitting a pull request.
License
This project is licensed under the Apache License 2.0. See LICENSE for details.
Copyright
Copyright © 2026 Jonas Kaninda