SMS Portal Notification Channel for laravel
rouxtaccess/laravel-mrmessaging is a Laravel package for sms portal notification channel for laravel.
It currently has 0 GitHub stars and 600 downloads on Packagist (latest version 1.3.0).
Install it with composer require rouxtaccess/laravel-mrmessaging.
Discover more Laravel packages by rouxtaccess
or browse all Laravel packages to compare alternatives.
Last updated
Laravel 10+
Send SMS notifications in Laravel powered by Mr Messaging.
composer require rouxtaccess/laravel-mrmessaging
The package will automatically register it's service provider and merge it's config
.env file:Required env config: (see advanced Configuration below for more)
MR_MESSAGING_USERNAME=
MR_MESSAGING_PASSWORD=
MR_MESSAGING_DELIVERY_ENABLED=true
We support a few ways to route the SMS to the correct number.
The default is to use the routeNotificationForSms method on the notifiable model.
This method should return the phone number to send the SMS to.
But if you'd like to specifically configure the phone number for MrMessaging differently, you can also use a method routeNotificationForMrMessaging on the notifiable model to override the default routeNotificationForSms.
Example:
public function routeNotificationForSms($notification)
{
return $this->customer_msisdn;
}
Note: Mr Messaging takes in a E.164 formatted number without the leading plus. On our side we will strip any + or spaces from the phone number before sending it to MrMessaging
Add 'mrmessaging' to your notification's via method.
public function via(object $notifiable): array
{
return ['mail', 'mrmessaging'];
}
Add the toMrMessaging method to your notification.
use Illuminate\Notifications\Messages\MrMessagingMessage;
public function toMrMessaging(object $notifiable): MrMessagingMessage
{
return (new MrMessagingMessage)
->content('Your SMS message content');
}
That's it! Send your notifications and they'll fire over to Mr Messaging.
$user->notify(new YourNotification());
You can publish the config file with:
php artisan vendor:publish --provider="Illuminate\Notifications\MrMessagingServiceProvider"
or
php artisan vendor:publish --tag=laravel-mrmessaging-config
You will notice that there are a few additional configuration options in the config file around storing eventIDs
Mr Messaging supports event tracking through a two different mechanisms.
By default, you can always hook into Laravel's events to listen for the NotificationSentEvent event
We return an array of all the Event ID's that we get from MrMessaging
It is an array, not a string because of multi-part messages (MrMessaging gives us an eventID for each part)
If enable via the config, we will store the eventIDs from all sms messages sent in the cache for a configurable amount of time (defaulting to 24 hours)
This is very useful if you just want a very simple solution to track the eventID until you get a delivery report back from Mr Messaging
The MIT License (MIT). Please see License File for more information.