sendpost / sendpost_php_sdk
Email API and SMTP relay to not just send and measure email sending, but also alert and optimise. We provide you with tools, expertise and support needed to reliably deliver emails to your customers inboxes on time, every time.
Installs: 12 696
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Requires
- php: ^7.4 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
This package is not auto-updated.
Last update: 2025-05-13 19:10:49 UTC
README
Email API and SMTP relay to not just send and measure email sending, but also alert and optimise. We provide you with tools, expertise and support needed to reliably deliver emails to your customers inboxes on time, every time.
Installation & Usage
Requirements
PHP 7.4 and later. Should also work with PHP 8.0.
Composer
To install the bindings via Composer, add the following to composer.json
:
{ "require": { "sendpost/sendpost_php_sdk": "^1.0.0" } }
Then run composer install
Manual Installation
Download the files and include autoload.php
:
<?php require_once('/path/to/sendpost/vendor/autoload.php');
Getting Started
Please follow the installation procedure and then run the following:
require_once(__DIR__ . '/vendor/autoload.php'); $client = new GuzzleHttp\Client(); $apiInstance = new sendpost\api\EmailApi($client); $x_sub_account_api_key = 'your_api_key'; // string | Sub-Account API Key $email_message = new \sendpost\model\EmailMessage(); $email_message->setSubject('Hello World'); $email_message->setHtmlBody('<strong>it works!</strong>'); $email_message->setIppool('PiedPiper'); $from = new \sendpost\model\From(); $from->setEmail('richard@piedpiper.com'); $to = new \sendpost\model\To(); $to->setEmail('gavin@hooli.com'); $email_message->setTo(array($to)); $email_message->setFrom($from); try { $result = $apiInstance->sendEmail($x_sub_account_api_key, $email_message); print_r($result); } catch (Exception $e) { echo 'Exception when calling EmailApi->sendEmail: ', $e->getMessage(), PHP_EOL; }
Example with cc, bcc and template:
require_once(__DIR__ . '/vendor/autoload.php'); $client = new GuzzleHttp\Client(); $apiInstance = new sendpost\api\EmailApi($client); $x_sub_account_api_key = 'your_api_key'; // string | Sub-Account API Key $email_message = new \sendpost\model\EmailMessage(); $email_message->setSubject('Hello World'); $email_message->setHtmlBody('<strong>it works!</strong>'); $email_message->setIppool('PiedPiper'); $from = new \sendpost\model\From(); $from->setEmail('richard@piedpiper.com'); $cc = new \sendpost\model\CopyTo(); $cc->setEmail('dinesh@bachmanity.com'); $to->setCc(array($cc)); $bcc = new \sendpost\model\CopyTo(); $bcc->setEmail('jian@bachmanity.com'); $to->setBcc(array($bcc)); $email_message->setTemplate('Welcome Mail'); $to = new \sendpost\model\To(); $to->setEmail('gavin@hooli.com'); $email_message->setTo(array($to)); $email_message->setFrom($from); try { $result = $apiInstance->sendEmailWithTemplate($x_sub_account_api_key, $email_message); print_r($result); } catch (Exception $e) { echo 'Exception when calling EmailApi->sendEmailWithTemplate: ', $e->getMessage(), PHP_EOL; }
Suppressions
Create Suppressions
require_once(__DIR__ . '/vendor/autoload.php'); $client = new GuzzleHttp\Client(); $apiInstance = new sendpost\api\SuppressionApi($client); $x_sub_account_api_key = 'your_api_key'; $r_suppression = new \sendpost\model\RSuppression(); $suppression_email = new \sendpost\model\SuppressionEmail(); $suppression_email->setEmail('richard@piedpiper_fake.com'); $r_suppression->setHardBounce(array($suppression_email)); // fields are optional, but you have to send at least one of them. // $r_suppression->setManual(array($suppression_email)); // $r_suppression->setSpamComplaint(array($suppression_email)); // $r_suppression->setUnsubscribe(array($suppression_email)); try { $result = $apiInstance->createSuppressions($x_sub_account_api_key, $r_suppression); echo json_encode($result); } catch (Exception $e) { echo 'Exception when calling SuppressionApi->createSuppressions: ', $e->getMessage(), PHP_EOL; }
Get Suppressions
require_once(__DIR__ . '/vendor/autoload.php'); $client = new GuzzleHttp\Client(); $apiInstance = new sendpost\api\SuppressionApi($client); $x_sub_account_api_key = 'your_api_key'; $offset = 0; $limit = 10; $search = null; $from = '2023-06-07'; $to = '2023-08-02'; try { $result = $apiInstance->getSuppressions($x_sub_account_api_key, $offset, $limit, $search, $from, $to); echo json_encode($result); } catch (Exception $e) { echo 'Exception when calling SuppressionApi->getSuppressions: ', $e->getMessage(), PHP_EOL; }
Delete Suppression
require_once(__DIR__ . '/vendor/autoload.php'); $client = new GuzzleHttp\Client(); $apiInstance = new sendpost\api\SuppressionApi($client); $x_sub_account_api_key = 'your_api_key'; $rd_suppression = new \sendpost\model\RDSuppression(); $suppression_email = new \sendpost\model\SuppressionEmail(); $suppression_email->setEmail('richard@piedpiper_fake.com'); $rd_suppression->setSuppressions(array($suppression_email)); try { $result = $apiInstance->deleteSuppression($x_sub_account_api_key, $rd_suppression); echo json_encode($result); } catch (Exception $e) { echo 'Exception when calling SuppressionApi->deleteSuppression: ', $e->getMessage(), PHP_EOL; }
Count Suppression
require_once(__DIR__ . '/vendor/autoload.php'); $client = new GuzzleHttp\Client(); $apiInstance = new sendpost\api\SuppressionApi($client); $x_sub_account_api_key = 'your_api_key'; $from = '2023-06-07'; $to = '2023-08-02'; try { $result = $apiInstance->count($x_sub_account_api_key, $from, $to); echo json_encode($result); } catch (Exception $e) { echo 'Exception when calling SuppressionApi->count: ', $e->getMessage(), PHP_EOL; }
API Endpoints
All URIs are relative to https://api.sendpost.io/api/v1
Class | Method | HTTP request | Description |
---|---|---|---|
EmailApi | sendEmail | POST /subaccount/email/ | |
EmailApi | sendEmailWithTemplate | POST /subaccount/email/template | |
SuppressionApi | count | GET /subaccount/suppression/count | |
SuppressionApi | createSuppressions | POST /subaccount/suppression/ | |
SuppressionApi | deleteSuppression | DELETE /subaccount/suppression/ | |
SuppressionApi | getSuppressions | GET /subaccount/suppression/ |
Models
- Attachment
- City
- CopyTo
- CountStat
- DeleteResponse
- Device
- EmailMessage
- EmailResponse
- EventMetadata
- From
- Os
- QEmailMessage
- QEvent
- RDSuppression
- RSuppression
- ReplyTo
- Suppression
- SuppressionEmail
- To
- UserAgent
- WebhookEvent
Authorization
Endpoints do not require authorization.
Tests
To run the tests, use:
composer install vendor/bin/phpunit