laravel-message-gears maintained by actengage
Description
MessageGears notification drivers for Laravel.
Author
Last update
2026/04/01 23:02
(dev-master)
Downloads
2 993
MessageGears for Laravel
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