An Amazon SES api for PHP. Support signature version 4

7.0.0 2021-05-06 06:43 UTC

This package is not auto-updated.

Last update: 2024-04-19 22:21:20 UTC


README

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.x >= 7.2

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]; // your@email.com

Verify Email.

$ses->verifyEmailIdentity('your-email@example.com'); // return string(RequestId)

Delete an identity.

$ses->deleteIdentity('your-email@example.com'); // return string(RequestId)

Get verification token and status.

$identities = [
    'your-email@example.com',
    '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(
    'your-email@example.com',
    'Subject',
    'Message',
);
$envelope->addTo('to@example.com');

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

Send Email with HTML.

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

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

Send Email to multiple distinations.

$envelope = new SimpleEmailServiceEnvelope(
    'your-email@example.com',
    'Subject',
    'Message',
);
$envelope->addTo(['to1@example.com', 'to2@example.com']);
$envelope->addCc('cc1@example.com');
$envelope->addBcc(['bcc1@example.com'])

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

Send Email with attachment file(s).

$envelope = new SimpleEmailServiceEnvelope(
    'your-email@example.com',
    'Subject',
    'Message',
);
$envelope->addTo('to@example.com');
$envelope->addAttachmentFromFile('filename.svg', '/Your/File/name.svg', 'image/svg');

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