https://github.com/jkaninda/posta-php
Posta PHP Client
https://github.com/jkaninda/posta-php
email-marketing email-sender email-templates php posta posta-client posta-php-client
Last synced: 7 days ago
JSON representation
Posta PHP Client
- Host: GitHub
- URL: https://github.com/jkaninda/posta-php
- Owner: jkaninda
- License: mit
- Created: 2026-03-15T05:46:55.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-15T07:15:14.000Z (3 months ago)
- Last Synced: 2026-03-15T17:39:53.917Z (3 months ago)
- Topics: email-marketing, email-sender, email-templates, php, posta, posta-client, posta-php-client
- Language: PHP
- Homepage:
- Size: 4.88 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Posta PHP Client
A lightweight PHP client for the [Posta](https://github.com/jkaninda/posta) email API.
## Requirements
- PHP 8.1+
- `ext-curl`
- `ext-json`
## Installation
### Composer
```bash
composer require jkaninda/posta-php
```
### Manual
Copy `src/PostaClient.php` and `src/PostaException.php` into your project and include them.
## Usage
```php
use Posta\PostaClient;
$client = new PostaClient('https://posta.example.com', 'your-api-key');
```
### Send Email
```php
$response = $client->sendEmail([
'from' => 'sender@example.com',
'to' => ['recipient@example.com'],
'subject' => 'Hello',
'html' => '
Hello World
',
]);
// $response = ['id' => '...', 'status' => 'queued']
```
### Send Template Email
```php
$response = $client->sendTemplateEmail([
'template' => 'welcome',
'to' => ['user@example.com'],
'template_data' => ['name' => 'John'],
]);
```
### Send Batch Emails
```php
$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
```php
$status = $client->getEmailStatus('email-uuid');
// $status = ['id' => '...', 'status' => 'sent', 'retry_count' => 0, ...]
```
### Error Handling
```php
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 MIT License. See [LICENSE](LICENSE) for details.
---
**Made with ❤️ for the developer community**
⭐ **Star us on GitHub** — it motivates us to keep improving!
Copyright © 2026 Jonas Kaninda