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
- dev-master
- v4.0.0
- v1.0.0
- v0.17.5
- v0.17.4
- v0.17.3
- v0.17.2
- v0.17.1
- v0.17.0
- v0.16.1
- v0.16.0
- v0.15.0
- v0.14.0
- v0.13.1
- v0.13.0
- v0.12.0
- v0.11.0
- v0.10.7
- v0.10.6
- v0.10.5
- v0.10.4
- v0.10.3
- v0.10.2
- v0.10.1
- v0.10.0
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
- dev-changeset-release/master
- dev-feat/pest-phpstan-rector-laravel-13
- dev-feat/pest-phpstan-laravel-12
This package is auto-updated.
Last update: 2026-04-01 21:03:43 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