flowmailer / flowmailer-php74-sdk
Flowmailers PHP SDK for api.flowmailer.net REST API
2.2.1
2024-12-18 08:11 UTC
Requires
- php: ^7.4
- composer-runtime-api: ^2.0
- ext-json: *
- doctrine/collections: ^1.6 || ^2.0
- php-http/client-common: ^2.5
- php-http/discovery: ^1.0
- php-http/httplug: ^2.0
- php-http/message: ^1.13
- php-http/promise: ^1.1
- phpdocumentor/reflection-docblock: ^5.3
- psr/http-client: ^1.0
- psr/http-client-implementation: ^1.0
- psr/http-factory: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/http-message: ^1.0 || ^2.0
- psr/log: ^1.1 || ^2.0 || ^3.0
- psr/simple-cache: ^1.0 || ^2.0 || ^3.0
- psr/simple-cache-implementation: ^1.0 || ^2.0 || ^3.0
- symfony/cache: ^5.4 || ^6.0 || ^7.0
- symfony/options-resolver: ^5.4 || ^6.0 || ^7.0
- symfony/property-access: ^5.4 || ^6.0 || ^7.0
- symfony/property-info: ^5.4 || ^6.0 || ^7.0
- symfony/serializer: ^5.4 || ^6.0 || ^7.0
- symfony/string: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
- enqueue/simple-client: ^0.10.16
- ergebnis/composer-normalize: ^2.6 || ^3.0
- friendsofphp/php-cs-fixer: ^3.4
- guzzlehttp/psr7: ^1.0 || ^2.0
- icanhazstring/composer-unused: ^0.7 || ^0.8
- league/html-to-markdown: ^5.0
- maglnet/composer-require-checker: ^2.0 || ^3.0 || ^4.0
- nette/php-generator: ^3.6 || ^4.0
- nyholm/psr7: ^1.4
- php-http/mock-client: ^1.0
- phpstan/phpstan: ^1.3 || ^2.0
- phpunit/phpunit: ^9.5 || ^10.0 || ^11.0
- rector/rector: ^0.15.4 || ^1.0 || ^2.0
- symfony/http-client: ^5.4 || ^6.0 || ^7.0
- symfony/var-dumper: ^5.4 || ^6.0 || ^7.0
Suggests
- enqueue/simple-client: With enqueue you're able to queue sending of messages (on many different implementations). Please see docs.
- guzzlehttp/promises: To use Flowmailer::submitMessages (for sending multiple messages to Flowmailer in an async manner), require version ^2.0.
- php-http/logger-plugin: The LoggerPlugin converts requests, responses and exceptions to strings and logs them with a PSR3 compliant logger
Provides
Replaces
README
Flowmailers PHP 7.4 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-php74-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.
Basic usage
Submit a message
<?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('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.