Skip to content
/ php-ses Public

An Amazon SES api for php. Support signature version 4.

License

Notifications You must be signed in to change notification settings

okamos/php-ses

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Amazon Simple Email Service for PHP

license
php-ses is a PHP library for Amazon's Simple Email Service's REST API Amazon SES

Installation

Install via Composer

composer require okamos/php-ses

Getting started

To get started you need to require ses.php

<php?
require_once('vendor/autoload.php');

This library need your AWS access key id and aws secret access key.

$ses = new SimpleEmailService(
    'AKI...', // your AWS access key id
    'your_secret...', // your AWS secret access key
    'us-west-2' // AWS region, default is us-east-1
);

// if you can't use verification of SSL certificate
$ses = new SimpleEmailService(
    'AKI...', // your AWS access key id
    'your_secret...', // your AWS secret access key
    'us-west-2' // AWS region, default is us-east-1
);

// method name's first character is must be lower case
$identities = $ses->listIdentities(); // string[]

Version Guidance

Version PHP Version
1.x >= 5.6, >= 7.0
7.0.0 >= 7.2
^7.3 >= 7.3, >= 8.0
^8.0 >= 8.0

Available API

  • ListIdentities
  • VerifyEmailIdentity
  • DeleteIdentity
  • SendEmail
  • GetSendQuota
  • GetSendStatistics
  • GetIdentityVerificationAttributes

Usage

Listing identities.

// List all identities your domains.
$identities = $ses->ListIdentities('Domain');
// List all identities your email addresses.
$identities = $ses->ListIdentities('EmailAddress');
$identities[0]; // [email protected]

Verify Email.

$ses->verifyEmailIdentity('[email protected]'); // return string(RequestId)

Delete an identity.

$ses->deleteIdentity('[email protected]'); // return string(RequestId)

Get verification token and status.

$identities = [
    '[email protected]',
    'your-domain.com'
];
$entries = $ses->getIdentityVerificationAttributes($identities);
$entries[0]['Email']; // string (email)
$entries[0]['Token']; // string(token)
$entries[1]['Status']; // string(Pending | Success | Failed | TemporaryFailure)

Get your AWS account's send quota.

$sendQuota = $ses->getSendQuota();
$sendQuota['Max24HourSend'] // string
$sendQuota['SentLast24Hours'] // string
$sendQuota['MaxSendRate'] // string

Get your sending statistics.

$data = $ses->getSendStatistics();
$data['Complaints'] // string
$data['Rejects'] // string
$data['Bounces'] // string
$data['DeliveryAttempts'] // string
$data['Timestamp'] // string

Send Email Basic Usage.

$envelope = new SimpleEmailServiceEnvelope(
    '[email protected]',
    'Subject',
    'Message',
);
$envelope->addTo('[email protected]');

$requestId = $ses->sendEmail($envelope);

Send Email with HTML.

$envelope = new SimpleEmailServiceEnvelope(
    '[email protected]',
    'Subject',
    'Message',
    '<p>Message</p><img src="http:https://example.com/any/image" alt="image"'
);
$envelope->addTo('[email protected]');

$requestId = $ses->sendEmail($envelope);

Send Email to multiple distinations.

$envelope = new SimpleEmailServiceEnvelope(
    '[email protected]',
    'Subject',
    'Message',
);
$envelope->addTo(['[email protected]', '[email protected]']);
$envelope->addCc('[email protected]');
$envelope->addBcc(['[email protected]'])

$requestId = $ses->sendEmail($envelope);

Send Email with attachment file(s).

$envelope = new SimpleEmailServiceEnvelope(
    '[email protected]',
    'Subject',
    'Message',
);
$envelope->addTo('[email protected]');
$envelope->addAttachmentFromFile('filename.svg', '/Your/File/name.svg', 'image/svg');

$requestId = $ses->sendEmail($envelope);