Download the PHP package mailvex/mailvex-php without Composer

On this page you can find all versions of the php package mailvex/mailvex-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package mailvex-php

Mailvex PHP & Laravel SDK

Official PHP & Laravel client library for Mailvex Email Infrastructure Engine.

Latest Version on Packagist PHP Version Laravel Version


Features


Installation

Install the package via Composer:


Standalone PHP Usage

1. Initialize Client

[!IMPORTANT] Base URL in Production: In development, baseUrl can default to http://localhost:8080. In production, leaving the base URL empty or pointing to localhost will throw an InvalidArgumentException.


2. Send Email with Attachments

Attach files from paths, raw data, or Base64 strings:


3. Send to Multiple Recipients in One Call

Provide an array of email addresses to to(), cc(), or bcc():


4. Send Batch Emails (Up to 500 Distinct Messages in One Call)

Use sendBatch() to dispatch distinct, personalized messages to multiple recipients in a single HTTP request:


Message Streams Guide

Mailvex organizes outbound traffic into Message Streams. Streams provide physical isolation between critical operational notifications and high-volume broadcast campaigns.

Stream Intended Use Queue Priority Unsubscribe Handling Suppression Scope
transactional (Default) OTPs, password resets, admission notices, invoices, account alerts P1 (Expedited) No marketing unsubscribe headers inserted Not affected by marketing / broadcast unsubscribes
broadcast Marketing newsletters, student announcements, promotional broadcasts P2 (Bulk) Automatically injects RFC 8058 One-Click List-Unsubscribe headers Scoped to broadcast; recipient unsubscribe blocks broadcast only
Custom Streams Created via POST /v1/streams (e.g. admissions, billing) Configurable Configurable per stream type Partitioned by stream ID

Stream Behavior & Guarantees

  1. Queue Priority & Throughput Protection: transactional emails are dispatched to Priority 1 (mvx:delivery:p1), ensuring critical transactional emails are never delayed behind a 50,000-recipient newsletter blast.
  2. Independent Suppression Lists: Suppression checks in Mailvex are scoped by (tenant_id, stream_id, address). If an applicant unsubscribes from marketing or broadcast updates, their address is only suppressed on the broadcast stream. Critical transactional messages (e.g. password resets, admission offers) will continue to deliver normally.
  3. Automatic RFC 8058 Headers: When stream is broadcast, Mailvex automatically generates signed VERP tokens and embeds RFC 8058 List-Unsubscribe and List-Unsubscribe-Post: List-Unsubscribe=One-Click headers into the raw MIME message.
  4. Setting Stream in Laravel:

    • MailvexTransport defaults to stream: transactional.
    • To send as broadcast via Laravel's native mailer, set the X-Mailvex-Stream header:

    • When using the Mailvex Facade or SDK directly:

Webhook Engine & Event Specifications

Mailvex delivers real-time HTTP POST notifications for delivery outcomes, recipient engagement, and reputation events.

Security & Signature Algorithm

Each delivery includes the header:

Webhook Event Catalog

1. message.delivered

Fired when the destination MX server accepts the message with SMTP 250 2.0.0 OK.

2. message.bounced

Fired when delivery fails with an SMTP rejection code (5xx or terminal 4xx).

Bounce Classifications & Recommended Handling: Classification ($event->getBounceType()) Action (data.action) Meaning Recommended Action
hard_bounce suppress_immediate Mailbox does not exist (5.1.1) or domain unrouteable Block / Suppress address permanently ($event->isHardBounce() === true)
soft_bounce retry Mailbox full / quota exceeded (4.2.2) Do not block. Mailvex auto-retries
rate_limited retry Too many connections / throttled (4.7.28) Do not block. Mailvex auto-retries
mailbox_unavailable retry Target system temporary downtime (4.2.1) Do not block. Mailvex auto-retries
spam_rejection dead_letter Remote server blocked content/IP Inspect sender reputation or content

3. message.complained

Fired when a recipient reports the message as spam via an ISP Feedback Loop (ARF) or RFC 8058 one-click list unsubscribe.

Feedback Types ($event->getFeedbackType()): abuse, spam, fraud, misc. Mailvex automatically suppresses complained recipients.

4. message.opened & message.clicked

Fired when open-tracking pixel is requested or link redirection occurs (bot hits are filtered automatically).

Outbound Delivery Retry Policy

When receiving temporary errors (4xx / soft_bounce / rate_limited), Mailvex's delivery queue schedules retries using a 9-tier schedule with ±20% randomized jitter:

Maximum delivery lifetime is 72 hours. If a soft bounce cannot be delivered after 9 attempts or 72 hours, its status transitions to failed and it is routed to the Dead Letter Queue (DLQ).


Laravel Integration (Laravel 9, 10, 11, 12, 13)

1. Configuration & Publishing

The package includes auto-discovery for MailvexServiceProvider and the Mailvex Facade.

Publish configuration:

Add your credentials to .env:

In config/mail.php:


2. Native Laravel Mailer with Attachments


3. Handling Webhooks in Laravel

Register the webhook route in routes/api.php:

Listen for Mailvex\Laravel\Events\WebhookReceived:


Testing

Run tests using PHP:

Or run PHPUnit:


License

The Mailvex PHP & Laravel SDK is open-source software licensed under the MIT license.


All versions of mailvex-php with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1.0
ext-curl Version *
ext-json Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package mailvex/mailvex-php contains the following files

Loading the files please wait ...