The official PHP SDK for JetEmail — send transactional emails with ease.
composer require jetemail/jetemail-phpRequires PHP 8.1+ and Guzzle 7.5+.
Note: You need to create an account at jetemail.com to get a transactional API key before using this SDK.
$jetemail = JetEmail::client('your-api-key');
$email = $jetemail->emails->send([
'from' => 'You <[email protected]>',
'to' => ['[email protected]'],
'subject' => 'Hello from JetEmail!',
'html' => '<h1>Welcome</h1><p>Thanks for signing up.</p>',
]);
echo $email->id;$jetemail = JetEmail::client('your-api-key');
// Send a single email
$email = $jetemail->emails->send([
'from' => 'App <[email protected]>',
'to' => '[email protected]',
'subject' => 'Order Confirmation',
'html' => '<p>Your order has been confirmed.</p>',
'text' => 'Your order has been confirmed.',
'cc' => ['[email protected]'],
'bcc' => ['[email protected]'],
'reply_to' => '[email protected]',
'headers' => [
'X-Custom-Header' => 'value',
],
'attachments' => [
[
'filename' => 'receipt.pdf',
'data' => base64_encode(file_get_contents('/path/to/receipt.pdf')),
],
],
]);Send up to 100 emails in a single request:
$result = $jetemail->batch->send([
[
'from' => 'App <[email protected]>',
'to' => '[email protected]',
'subject' => 'Hello User 1',
'html' => '<p>Welcome!</p>',
],
[
'from' => 'App <[email protected]>',
'to' => '[email protected]',
'subject' => 'Hello User 2',
'html' => '<p>Welcome!</p>',
],
]);use JetEmail\WebhookSignature;
use JetEmail\Exceptions\WebhookSignatureVerificationException;
try {
WebhookSignature::verify(
payload: $requestBody,
signature: $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'],
timestamp: $_SERVER['HTTP_X_WEBHOOK_TIMESTAMP'],
secret: 'your-webhook-secret',
);
// Signature is valid
} catch (WebhookSignatureVerificationException $e) {
// Invalid signature
http_response_code(401);
}$jetemail = JetEmail::client('your-api-key', 'https://custom-api.example.com');use JetEmail\Exceptions\ErrorException;
use JetEmail\Exceptions\TransporterException;
try {
$jetemail->emails->send([...]);
} catch (ErrorException $e) {
// API returned an error
echo $e->getMessage();
echo $e->getCode(); // HTTP status code
print_r($e->getBody()); // Full error response
} catch (TransporterException $e) {
// Network/transport error
echo $e->getMessage();
}| Service | Property | Description |
|---|---|---|
$client->emails |
Send a single email | |
| Batch | $client->batch |
Send batch emails (up to 100) |
MIT