Flowmailers PHP 8.1 SDK for api.flowmailer.net REST API
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.
See how to force the usage of a specific implementation when many are available in your project on github.com/php-http/discovery.
<?php
require 'vendor/autoload.php';
use Flowmailer\API\Enum\MessageType;
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(MessageType::EMAIL)
->setSubject('An e-mail message')
->setRecipientAddress('[email protected]')
->setSenderAddress('[email protected]')
;
<?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();
}
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.