sendkit/sendkit-php

PHP SDK for the SendKit email API

Maintainers

Package info

github.com/sendkitdev/sendkit-php

pkg:composer/sendkit/sendkit-php

Statistics

Installs: 341

Dependents: 1

Suggesters: 0

Stars: 1

Open Issues: 0

1.0.5 2026-03-12 01:23 UTC

This package is auto-updated.

Last update: 2026-03-12 01:24:04 UTC


README

Official PHP SDK for the SendKit email API.

Installation

composer require sendkit/sendkit-php

Usage

Create a Client

use SendKit\SendKit;

$client = SendKit::client('your-api-key');

Send an Email

$response = $client->emails()->send([
    'from' => 'you@example.com',
    'to' => 'recipient@example.com',
    'subject' => 'Hello from SendKit',
    'html' => '<h1>Welcome!</h1>',
]);

echo $response['id']; // Email ID

Send a MIME Email

$response = $client->emails()->sendMime(
    envelopeFrom: 'you@example.com',
    envelopeTo: 'recipient@example.com',
    rawMessage: $mimeString,
);

echo $response['id'];

Validate an Email

$result = $client->validateEmail('recipient@example.com');

$result['is_valid'];       // true or false
$result['should_block'];   // true if the email should be blocked
$result['block_reason'];   // reason for blocking, or null
$result['evaluations'];    // detailed evaluation results

The evaluations array contains:

  • has_valid_syntax — whether the email has valid syntax
  • has_valid_dns — whether the domain has valid DNS records
  • mailbox_exists — whether the mailbox exists
  • is_role_address — whether it's a role address (e.g. info@, admin@)
  • is_disposable — whether it's a disposable email
  • is_random_input — whether it appears to be random input

Note: Each validation costs credits. A SendKitException with status 402 is thrown when credits are insufficient.

Error Handling

use SendKit\Exceptions\SendKitException;

try {
    $client->emails()->send([...]);
} catch (SendKitException $e) {
    echo $e->getMessage(); // Error message
    echo $e->status;       // HTTP status code
}