Search by

sendmux / core

roshanjonah

Shared runtime helpers for Sendmux PHP SDK packages.

v2.1.0 2026-09-11 03:22 UTC

This package is auto-updated.

Last update: 2026-09-11 03:23:11 UTC


README

Packagist version PHP version License

Shared runtime helpers for Sendmux PHP SDK packages.

Read the PHP SDK guide at sendmux.ai/docs/sdks/php.

Requirements

  • PHP 8.2 or newer.
  • Composer.

Installation

composer require sendmux/core:^2.1

Upgrading from 1.x? Read the PHP 2.0 migration guide before changing your Composer constraint.

Usage

Use sendmux/core directly when you need the shared helper layer without a generated API client.

<?php

require __DIR__ . '/vendor/autoload.php';

use Sendmux\Core\ApiKeySurface;
use Sendmux\Core\Auth;
use Sendmux\Core\Headers;
use Sendmux\Core\RetryOptions;

$apiKey = getenv('SENDMUX_MAILBOX_API_KEY') ?: '';

Auth::assertApiKeySurface($apiKey, ApiKeySurface::Mailbox);

$headers = array_merge(
    Headers::idempotency('order-123'),
    Headers::conditional(ifMatch: '"mailbox-etag"')
);

$retryOptions = new RetryOptions(maxAttempts: 3);

Features

  • Auth validates smx_root_ prefixes for root clients, send-capable smx_mbx_ prefixes or owner-approved Sending-resource smx_agent_ tokens for Sending clients, and mailbox-compatible smx_mbx_ or smx_agent_ prefixes for Mailbox clients.
  • Headers builds Idempotency-Key, If-Match, and If-None-Match header arrays.
  • Pagination::iterate() streams cursor-paginated responses.
  • Auth::accessTokenMiddleware() validates a bare OAuth token or callable provider and adds the bearer header per attempt.
  • RetryMiddleware honours Retry-After, X-RateLimit-Reset and explicit error.retryable: false. maxDelayMilliseconds caps local backoff only; RetryOptions(maxElapsedMilliseconds: 5000) stops retries that would exceed the budget and returns the last response with its retry metadata. The budget does not interrupt an in-flight request; configure transport timeouts separately.
  • ErrorMapper maps generated exceptions into SendmuxApiError.

Package map

Package Use it for
sendmux/sending Sending API client.
sendmux/mailbox Mailbox API client.
sendmux/management Management API client.
sendmux/sdk Umbrella package that installs all PHP SDK surfaces.

Support

For help, include the package name, version, API surface, and sanitised request details. Do not include API keys, tokens, passwords, webhook secrets, customer data, or private account details.

License

MIT. See LICENSE.