actengage / laravel-message-gears
MessageGears notification drivers for Laravel.
Package info
github.com/ActiveEngagement/laravel-message-gears
pkg:composer/actengage/laravel-message-gears
Requires
- php: ^8.3
- guzzlehttp/guzzle: ^7.0
- illuminate/config: ^11.0|^12.0|^13.0
- illuminate/notifications: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
Requires (Dev)
- driftingly/rector-laravel: ^2.0
- larastan/larastan: ^3.0
- laravel/pint: ^1.22
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- phpstan/phpstan: ^2.0
- rector/rector: ^2.0
This package is auto-updated.
Last update: 2026-05-31 21:25:23 UTC
README
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