Download the PHP package millionsend/millionsend-php without Composer
On this page you can find all versions of the php package millionsend/millionsend-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download millionsend/millionsend-php
More information about millionsend/millionsend-php
Files in millionsend/millionsend-php
Package millionsend-php
Short Description Official PHP SDK for MillionSend — a self-hostable, Resend-compatible email API.
License MIT
Homepage https://github.com/MillionSend/millionsend-php
Informations about the package millionsend-php
millionsend-php
Official PHP SDK for MillionSend — a self-hostable, Resend-compatible email API on AWS SES.
The API is wire-compatible with Resend, and this SDK deliberately mirrors the
shape of resend-php, so migrating is
mostly a find-and-replace: swap the factory, and point the base URL at your
instance.
Install
Requires PHP 8.1+.
Quickstart
Configuration
MillionSend is self-hosted, so there is no cloud default — set baseUrl (or
MILLIONSEND_BASE_URL) to your deployment in production.
Errors
Every non-2xx response throws MillionSend\Exceptions\ErrorException. Its
getErrorName() is a stable snake_case code you can branch on
(validation_error, not_found, restricted_api_key, sending_paused, …).
Client-side and transport failures (a request that never reached the API) throw
the same exception with getStatusCode() returning null.
Successful calls return the decoded JSON body as an associative array.
Resources
Emails
Send options are camelCase and mapped to the wire: replyTo → reply_to,
scheduledAt → scheduled_at. to/cc/bcc/replyTo accept a string or an array.
Contacts
Contacts are team-global: one record per email address, shared by every broadcast and segment.
Topics
Broadcasts
Targeting is an optional segmentId and/or topicId — omit both to send to
every contact on the team.
Segments (MillionSend extension)
Dynamic segments are a saved filter over the team's contacts — a MillionSend superset with no Resend equivalent.
Migrating from Resend
Method names, nesting, and payloads match resend-php. Notes:
- Domains and API keys are managed in the MillionSend dashboard, not via the
API, so there are no
->domains/->apiKeysresources here. - No audiences. Contacts are team-global, so there is no
->audiencesresource and noaudienceIdparams — drop the audience id and the calls map straight over. MillionSend's->segmentsis the distinct dynamic-filter feature, not Resend's audience alias.
License
MIT — see LICENSE.