jkaninda/posta-php

PHP client for the Posta email API

Maintainers

Package info

github.com/jkaninda/posta-php

pkg:composer/jkaninda/posta-php

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-03-15 18:50 UTC

This package is auto-updated.

Last update: 2026-05-15 19:23:39 UTC


README

A lightweight PHP client for the Posta email API.

Requirements

  • PHP 8.1+
  • ext-curl
  • ext-json

Installation

Composer

composer require jkaninda/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 MIT License. See LICENSE for details.

Made with ❤️ for the developer community

Star us on GitHub — it motivates us to keep improving!

Copyright © 2026 Jonas Kaninda