goposta/posta-php

PHP client for the Posta email API

Maintainers

Package info

github.com/goposta/posta-php

pkg:composer/goposta/posta-php

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.1.0 2026-04-25 16:11 UTC

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-curl
  • ext-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