Documentation

AmazonSesClient
in package

Amazon SES email client wrapper class.

Provides fluent interface for sending emails via AWS Simple Email Service with support for XML-based templates, CC/BCC recipients, and configuration sets.

use \X\Util\AmazonSesClient;

$ses  = new AmazonSesClient([
  'region' => $_ENV['AMS_SES_REGION'],
  'credentials' => [
    'key' => $_ENV['AMS_SES_ACCESS_KEY'],
    'secret' => $_ENV['AMS_SES_SECRET_KEY']
  ],
  'configuration' => $_ENV['AMS_SES_CONFIGURATION'],
]);
$ses
  ->from('from@example.com')
  ->to('to@example.com')
  ->messageFromXml('email/sample', ['name' => 'Alex'])
  ->send();

Email body and subject: application/views/email/sample.xml.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mail>
<subject>Test email.</subject>
<message>
Hi {{ name }}.
</message>
</mail>

Table of Contents

Properties

$bcc  : string
BCC email address.
$cc  : string
CC email address.
$charset  : string
Character code of the email. Default is "UTF-8".
$from  : string
Sender's email address.
$fromName  : string
Sender name.
$message  : string
Body.
$options  : array<string|int, mixed>
SES client options.
$subject  : string
Subject.
$to  : string
Destination email address.

Methods

__construct()  : mixed
Initialize AmazonSesClient.
bcc()  : AmazonSesClient
Set BCC recipient address.
cc()  : AmazonSesClient
Set CC recipient address.
charset()  : AmazonSesClient
Set the email character encoding.
from()  : AmazonSesClient
Set the sender address.
message()  : AmazonSesClient
Set the email body text.
messageFromXml()  : AmazonSesClient
Set subject and body from an XML template.
send()  : Result
Send the email via Amazon SES.
subject()  : AmazonSesClient
Set the email subject line.
to()  : AmazonSesClient
Set the recipient address.
client()  : SesClient
Get or create singleton SES client instance.
reset()  : void
Reset all message fields to defaults.

Properties

$charset

Character code of the email. Default is "UTF-8".

private string $charset = 'UTF-8'

$options

SES client options.

private array<string|int, mixed> $options = null
  • credentials: array with 'key' and 'secret' for AWS credentials
  • configuration: string|null configuration set name
  • region: string AWS region (e.g., 'ap-northeast-1')
  • version: string API version (default: 'latest')

Methods

__construct()

Initialize AmazonSesClient.

public __construct([array{credentials?: array{key: string, secret: string}, configuration?: string|null, region?: string, version?: string} $options = [] ]) : mixed
Parameters
$options : array{credentials?: array{key: string, secret: string}, configuration?: string|null, region?: string, version?: string} = []

Configuration options:

  • credentials.key: AWS access key ID.
  • credentials.secret: AWS secret access key.
  • configuration: SES configuration set name. Default is null.
  • region: AWS region for service requests.
  • version: SES API version. Default is "latest".

bcc()

Set BCC recipient address.

public bcc(string|array<string|int, string> $bcc) : AmazonSesClient
Parameters
$bcc : string|array<string|int, string>

BCC email address or array of addresses.

Return values
AmazonSesClient —

Method chaining.

cc()

Set CC recipient address.

public cc(string|array<string|int, string> $cc) : AmazonSesClient
Parameters
$cc : string|array<string|int, string>

CC email address or array of addresses.

Return values
AmazonSesClient —

Method chaining.

charset()

Set the email character encoding.

public charset(string $charset) : AmazonSesClient
Parameters
$charset : string

Character encoding (e.g., "UTF-8", "ISO-2022-JP").

Return values
AmazonSesClient —

Method chaining.

from()

Set the sender address.

public from(string $from[, string|null $fromName = null ]) : AmazonSesClient
Parameters
$from : string

Sender's email address.

$fromName : string|null = null

Display name for the sender.

Return values
AmazonSesClient —

Method chaining.

messageFromXml()

Set subject and body from an XML template.

public messageFromXml(string $xmlPath[, array<string|int, mixed> $params = [] ]) : AmazonSesClient

The XML file should contain <subject> and <message> elements. Twig variables can be used in the template.

Parameters
$xmlPath : string

XML template path relative to application/views/.

$params : array<string|int, mixed> = []

Template variables for interpolation.

Return values
AmazonSesClient —

Method chaining.

send()

Send the email via Amazon SES.

public send() : Result

After sending, all recipient and message fields are reset.

Tags
throws
InvalidArgumentException

If the sender address is invalid.

Return values
Result —

SES API response containing MessageId.

to()

Set the recipient address.

public to(string|array<string|int, string> $to) : AmazonSesClient
Parameters
$to : string|array<string|int, string>

Recipient email address or array of addresses.

Return values
AmazonSesClient —

Method chaining.

client()

Get or create singleton SES client instance.

private client() : SesClient
Return values
SesClient —

Cached SES client instance.

reset()

Reset all message fields to defaults.

private reset() : void

        
On this page

Search results