Skip to content

emailalias/emailalias-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

emailalias-php

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.

Install

composer require emailalias/emailalias

Requires PHP 8.1+ and the curl + json extensions.

Quick start

<?php
require 'vendor/autoload.php';

use EmailAlias\Client;

$client = new Client(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 aliases
foreach ($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]);

Error handling

use EmailAlias\Client;
use EmailAlias\AuthenticationException;
use EmailAlias\RateLimitException;
use EmailAlias\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());
}

Configuration

$client = new Client(
    apiKey: 'ea_live_xxx',
    baseUrl: 'https://emailalias.io', // override for staging / self-host
    timeoutSeconds: 30
);

Available methods

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

License

MIT

About

Official PHP SDK for EmailAlias.io — create email aliases, manage forwarding, and monitor leaks.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages