Skip to content

silinternational/email-service-php-client

Repository files navigation

email-service-php-client

PHP client to interact with our Email Service's API.

This client is built on top of Guzzle, the PHP HTTP Client. Guzzle has a simple way to create API clients by describing the API in a Swagger-like format without the need to implement every method yourself. So adding support for more APIs is relatively simple.

Install

Installation is simple with Composer:

$ composer require silinternational/email-service-php-client

Usage

Example:

<?php

use Sil\EmailService\Client\EmailServiceClient;

$emailServiceClient = new EmailServiceClient(
    'https://api.example.com/', // The base URI for the API.
    'DummyAccessToken', // Your HTTP header authorization bearer token.
    [
        'http_client_options' => [
            'timeout' => 10, // An (optional) custom HTTP timeout, in seconds.
        ],
    ]
);

$email = $emailServiceClient->email([
    "to_address" => "[email protected]",
    "cc_address" => "[email protected]",   // optional
    "bcc_address" => "[email protected]",    // optional
    "subject" => "Test Subject",
    "text_body" => "this is text",        // either text_body or html_body is required, but both can be provided
    "html_body" => "<b>this is html</b>",
]);

To send an email with a delay of a fixed amount of time:`

$email = $emailServiceClient->email([
    "to_address" => "[email protected]",
    "subject" => "Test Subject",
    "html_body" => "<b>this is html</b>",
    "delay_seconds" => "3600",
]);

Or to schedule an email, use send_after with a Unix timestamp:

$email = $emailServiceClient->email([
    "to_address" => "[email protected]",
    "subject" => "Test Subject",
    "html_body" => "<b>this is html</b>",
    "send_after" => "1556825944",
]);

Tests

To run the unit tests for this, run make test.

Guzzle Service Client Notes