actengage/laravel-message-gears

There is no license information available for the latest version (v4.0.0) of this package.

MessageGears notification drivers for Laravel.

Maintainers

Package info

github.com/ActiveEngagement/laravel-message-gears

pkg:composer/actengage/laravel-message-gears

Statistics

Installs: 2 663

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v4.0.0 2026-04-01 21:02 UTC

README

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