PHP SDK
Official PHP client for the Mailofly REST API. Package:mailofly/mailofly · Requires: PHP 8.1+ · Quickstart: PHP
Install
Initialize
Send email
With a saved template
$client->compose->send is deprecated and forwards to /v1/emails.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
mailofly/mailofly · Requires: PHP 8.1+ · Quickstart: PHP
composer require mailofly/mailofly
<?php
use Mailofly\Client;
use Mailofly\MailoflyException;
$client = new Client(
getenv('MAILOFLY_API_KEY'),
// 'https://www.mailofly.com', // optional baseUrl
);
try {
$result = $client->emails->send([
'from' => 'Acme <onboarding@example.com>',
'to' => ['alex@example.com'],
'subject' => 'Hello',
'html' => '<p>Thanks for signing up.</p>',
]);
echo $result['id'];
} catch (MailoflyException $e) {
fwrite(STDERR, "{$e->status} {$e->error} {$e->detailMessage}\n");
throw $e;
}
$client->emails->send([
'from' => 'Acme <onboarding@example.com>',
'to' => ['alex@example.com'],
'template' => [
'id' => 'uuid-of-template',
'variables' => ['first_name' => 'Alex'],
],
]);
$client->compose->send is deprecated and forwards to /v1/emails.
$result = $client->batch->send([
[
'from' => 'Acme <onboarding@example.com>',
'to' => ['foo@example.com'],
'subject' => 'hello world',
'html' => '<h1>it works!</h1>',
],
[
'from' => 'Acme <onboarding@example.com>',
'to' => ['bar@example.com'],
'subject' => 'world hello',
'html' => '<p>it works!</p>',
],
]);
| Namespace | Methods |
|---|---|
$client->accounts | list, create, get, update, delete |
$client->contacts | list, create, get, update, delete |
$client->templates | list, create, get, update, delete |
$client->segments | list, create, get, update, delete, contacts->list/add/remove |
$client->campaigns | list, create, get, update, delete, runs, send |
$client->emails | list, get, send |
$client->batch | send |
$client->compose | send (deprecated) |
$client->mailLogs | list |
$accounts = $client->accounts->list();
$client->contacts->create([
'email' => 'alex@example.com',
'first_name' => 'Alex',
'custom_fields' => ['plan' => 'pro'],
]);
$client->campaigns->send('campaign-uuid', ['send_now' => true]);
$logs = $client->mailLogs->list(['page' => 1, 'page_size' => 50, 'status' => 'failed']);
$meta = Client::discovery();
print_r($meta);
try {
$client->accounts->list();
} catch (MailoflyException $e) {
// $e->status, $e->error, $e->detailMessage
}