actengage/laravel-message-gears

MessageGears notification drivers for Laravel.
3,143
Install
composer require actengage/laravel-message-gears
Latest Version:v4.0.1
PHP:^8.3
Last Updated:Sep 2, 2026
Links: GitHub  ·  Packagist
Maintainer: actengage

MessageGears for Laravel

CI

A Laravel package for the MessageGears API. Provides fluent Cloud and Accelerator API clients, a notification channel, and a Symfony Mailer transport.

Requirements

  • PHP 8.3+
  • Laravel 11, 12, or 13

Installation

composer require actengage/laravel-message-gears

The service provider is auto-discovered.

Configuration

Add your MessageGears credentials to config/services.php:

// config/services.php

return [
    'messagegears' => [
        'cloud' => [
            'accountId' => env('MESSAGEGEARS_ACCOUNT_ID'),
            'apiKey'    => env('MESSAGEGEARS_API_KEY'),
        ],
        'accelerator' => [
            'accountId' => env('MESSAGEGEARS_ACCELERATOR_ACCOUNT_ID'),
            'apiKey'    => env('MESSAGEGEARS_ACCELERATOR_API_KEY'),
        ],
        'campaign_id' => env('MESSAGEGEARS_CAMPAIGN_ID'),
    ],
];

Usage

Sending a Transactional Email Notification

use Actengage\MessageGears\Notifications\TransactionalEmail;

$notification = TransactionalEmail::make()
    ->campaignId('CAMPAIGN_ID')
    ->context([
        'SubjectLine' => 'Welcome!',
        'HtmlContent' => '<h1>Hello</h1>',
        'TextContent' => 'Hello',
    ]);

$user->notify($notification);

Cloud API

The Cloud facade authenticates automatically and prepends the API version to URIs.

use Actengage\MessageGears\Facades\Cloud;

// Authenticated POST request
$response = Cloud::authenticate()->post('campaign/transactional/CAMPAIGN_ID', [
    'json' => [
        'accountId' => 'ACCOUNT_ID',
        'recipient' => [
            'data' => ['EmailAddress' => 'user@example.com'],
            'format' => 'JSON',
        ],
    ],
]);

Accelerator API

use Actengage\MessageGears\Facades\Accelerator;

$response = Accelerator::post('endpoint', [
    'json' => ['key' => 'value'],
]);

Mail Transport

You can use MessageGears as a Laravel mail transport. Add the mailer to config/mail.php:

// config/mail.php

'mailers' => [
    'messagegears' => [
        'transport' => 'messagegears',
        'campaign_id' => env('MESSAGEGEARS_CAMPAIGN_ID'),
    ],
],

Then send mail as usual:

Mail::mailer('messagegears')->to('user@example.com')->send(new WelcomeEmail());

TransactionalEmail Options

The TransactionalEmail notification supports a full set of fluent options:

TransactionalEmail::make()
    ->campaignId('CAMPAIGN_ID')
    ->campaignVersion('v2')
    ->context(['SubjectLine' => 'Hello'])
    ->category('marketing')
    ->correlationId('corr-123')
    ->latestSendTime('2030-01-01 12:00:00')
    ->notificationEmailAddress('alerts@example.com')
    ->fromAddress('noreply@example.com')
    ->fromName('My App')
    ->replyToAddress('support@example.com');

Testing

composer test           # Run Pest tests
composer lint           # Run Pint
composer analyse        # Run PHPStan
composer rector         # Run Rector (dry-run)

License

MIT

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

637,827,751 9,703
laravel/framework

The Laravel Framework.

589,172,971 34,950
laravel/tinker

Powerful REPL for the Laravel framework.

498,216,183 7,442
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

413,412,504 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

394,964,158 4,660

Version History

Version Released PHP Laravel License
v4.0.1 ^8.3 ^11.0|^12.0|^13.0
v4.0.0 ^8.3 ^11.0|^12.0|^13.0
v1.0.0 ^8.1 ^11.0
v0.17.5 ^8.1 ^10.0
v0.17.4 ^8.1 ^10.0