flowmailer/flowmailer-php-sdk

Flowmailers PHP SDK for api.flowmailer.net REST API

1.0.0 2022-06-01 08:57 UTC

This package is auto-updated.

Last update: 2022-06-01 09:00:16 UTC


README

Flowmailers PHP 8.1 SDK for api.flowmailer.net REST API

Getting started

Installation

See docs.php-http.org for details on the HttpClient discovery.

A normal installation would be something equal to:

$ composer require symfony/http-client nyholm/psr7 flowmailer/flowmailer-php-sdk

Choose your preferred client implementations on packagist.

Basic usage

Submit a message

<?php

declare(strict_types=1);

require 'vendor/autoload.php';

use Flowmailer\API\Flowmailer;
use Flowmailer\API\Model\SubmitMessage;

// The credentials can be obtained in your Flowmailer account
$accountId    = '...';
$clientId     = '...';
$clientSecret = '...';

$flowmailer = Flowmailer::init($accountId, $clientId, $clientSecret);

$submitMessage = (new SubmitMessage())
    ->setMessageType('EMAIL')
    ->setSubject('An e-mail message')
    ->setRecipientAddress('your-customer@email.org')
    ->setSenderAddress('info@your-company.com')
;

Loop over messages that were submitted earlier

<?php

use Flowmailer\API\Collection\MessageCollection;

$flowmailer           = Flowmailer::init($accountId, $clientId, $clientSecret);
$pageSize             = 100;
$savedReferenceOrNull = null; // Get reference from database or cache (null will start from the beginning of the list)
$referenceRange       = new ReferenceRange($pageSize, $savedReferenceOrNull);

while ($referenceRange instanceof ReferenceRange) {
    /** @var MessageCollection $result */
    $result = $flowmailer->getMessages($referenceRange);

    // Do stuff with the result here

    // Store $referenceRange->getReference() value here in database or cache as input for a future run
    // Now we set the ReferenceRange for the next loop in memory
    $referenceRange = $result->getNextRange();
}

Advanced usage

See advanced usage for examples on caching, logging and sending multiple messages at once.
See queue messages for info on queueing messages for later consumption.