Official PHP client for the EmailAlias.io REST API.
API access is a Premium feature. Generate a key from Settings → API Keys in the web dashboard.
composer require emailalias/emailaliasRequires PHP 8.1+ and the curl + json extensions.
<?phprequire'vendor/autoload.php';
useEmailAlias\Client;
$client = newClient(getenv('EMAILALIAS_API_KEY'));
// Create an alias$alias = $client->createAlias([
'alias_type' => 'random',
'label' => 'Shopping',
]);
echo$alias['alias_email'] . PHP_EOL; // e.g. "x7k9m@email91.com"// List aliasesforeach ($client->listAliases() as$a) {
echo$a['alias_email'] . ' → ' . $a['destination_email'] . PHP_EOL;
}
// Forward to a verified additional destination$workAlias = $client->createAlias([
'alias_type' => 'custom',
'custom_code' => 'work-signup',
'label' => 'Work',
'destination_email' => 'work@mycompany.com', // must be verified on your account
]);
// Send email from an alias$client->sendEmail(
aliasId: $alias['id'],
toEmail: 'recipient@example.com',
subject: 'Hello',
body: 'Sent from my alias.'
);
// Disable an alias$client->updateAlias($alias['id'], ['active' => false]);useEmailAlias\Client;
useEmailAlias\AuthenticationException;
useEmailAlias\RateLimitException;
useEmailAlias\EmailAliasException;
try {
$client->listAliases();
} catch (AuthenticationException$e) {
// Invalid key, or account no longer Premium
} catch (RateLimitException$e) {
// Respect X-RateLimit-Reset and retry
} catch (EmailAliasException$e) {
error_log($e->status . ': ' . $e->getMessage());
}$client = newClient(
apiKey: 'ea_live_xxx',
baseUrl: 'https://emailalias.io', // override for staging / self-host
timeoutSeconds: 30
);| Method | Endpoint |
|---|---|
listAliases() | GET /api/aliases |
createAlias($options) | POST /api/aliases |
updateAlias($id, $options) | PATCH /api/aliases/{id} |
updateAliasDisplayName($id, $displayName) | PATCH /api/aliases/{id}/display-name |
deleteAlias($id) | DELETE /api/aliases/{id} |
listAvailableDomains() | GET /api/aliases/domains |
listDestinations() | GET /api/destinations |
addDestination($email) | POST /api/destinations |
resendDestinationVerification($id) | POST /api/destinations/{id}/resend |
deleteDestination($id) | DELETE /api/destinations/{id} |
sendEmail($aliasId, $toEmail, $subject, $body, $htmlBody=null) | POST /api/send-email |
listDomains() | GET /api/domains |
addDomain($name) | POST /api/domains |
verifyDomain($id) | POST /api/domains/{id}/verify |
deleteDomain($id) | DELETE /api/domains/{id} |
getDashboardStats() | GET /api/analytics/dashboard |
listLogs($page, $perPage) | GET /api/analytics/logs |
listExposureEvents($page, $perPage) | GET /api/analytics/exposure |
Full API reference: https://emailalias.io/documentation
MIT