numesia / all-my-sms
AllMySms Notifications driver
Requires
- php: >=7.3
- guzzlehttp/guzzle: ^6.2 || ^7.0
- illuminate/notifications: ^5.5 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^5.5 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- mockery/mockery: ^1.4.4
- phpunit/phpunit: ^9.5
README
This package makes it easy to send notifications using AllMySms with Laravel 5.5+, 6.x, 7.x, 8.x and 9.x.
Contents
Installation
You can install the package via composer:
composer require laravel-notification-channels/all-my-sms
Setting up the AllMySms service
Add the following code to you config/services.php
:
// config/services.php ... 'all_my_sms' => [ 'uri' => env('ALL_MY_SMS_URI', 'https://api.allmysms.com/http/9.0'), 'login' => env('ALL_MY_SMS_LOGIN'), 'api_key' => env('ALL_MY_SMS_API_KEY'), 'format' => env('ALL_MY_SMS_FORMAT', 'json'), 'sender' => env('ALL_MY_SMS_SENDER'), 'universal_to' => env('ALL_MY_SMS_UNIVERSAL_TO'), ], ...
Usage
Now you can use the channel in your via()
method inside the notification:
use NotificationChannels\AllMySms\AllMySmsChannel; use NotificationChannels\AllMySms\AllMySmsMessage; use Illuminate\Notifications\Notification; class ProjectCreated extends Notification { public function via($notifiable) { return [AllMySmsChannel::class]; // or 'all_my_sms' } public function toAllMySms($notifiable) { return new AllMySmsMessage('Content'); } }
In order to let your Notification know which phone number to use, add the routeNotificationForAllMySms
method to your Notifiable model.
This method needs to return a phone number.
public function routeNotificationForAllMySms(Notification $notification) { return $this->phone_number; }
Local development
When developing an application that sends sms, you probably don't want to actually send sms to live phone numbers. You may set a universal recipient of all sms sent. This can be done by the ALL_MY_SMS_UNIVERSAL_TO
environment variable or the universal_to
option.
Available Message methods
content(string $content)
: Accepts a string value for the sms content.sender(string $sender)
: Accepts a string value for the sender name.campaign(string $campaign)
: Accepts a string value for the sms campaign name.sendAt(\DateTimeInterface|string $sendAt)
: Accepts a DateTimeInterface or string for the sms due date.parameters(array $parameters)
: Accepts an array for the sms parameters.
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email mikael.popowicz@gmail.com instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.