laravel-sms maintained by susheelbhai
Description
Multi-provider SMS integration for Laravel applications with notification channel support
Author
Last update
2026/07/10 13:32
(dev-main)
License
Downloads
2
Laravel SMS
Multi-provider SMS package for Laravel with notification channel support.
Supported Providers
- Fast2SMS — Quick SMS and OTP routes
- MSG91 — Flow API and OTP API
- Mock — Local/testing without API calls
Installation
composer require susheelbhai/laravel-sms
php artisan sms:install
Configuration
SMS_ENABLED=1
SMS_PROVIDER=fast2sms
SMS_COUNTRY_CODE=91
SMS_TEST_NUMBER=9999999999
FAST2SMS_API_KEY=your_api_key
FAST2SMS_SENDER_ID=FSTSMS
FAST2SMS_ROUTE=q
FAST2SMS_OTP_ROUTE=otp
MSG91_AUTH_KEY=your_auth_key
MSG91_SENDER_ID=SMSIND
MSG91_FLOW_ID=your_flow_id
When APP_ENV is not production, all SMS are redirected to SMS_TEST_NUMBER.
Direct Usage
use Susheelbhai\Sms\Facades\Sms;
Sms::send('9876543210', 'Your order is confirmed.');
Sms::sendOtp('9876543210', '482910');
Sms::via('msg91')->send('9876543210', 'Hello from MSG91');
Notification Channel
public function via(object $notifiable): array
{
$channels = ['database'];
if (config('sms.enabled') == 1 && isset($notifiable->phone)) {
$channels[] = 'sms';
}
return $channels;
}
public function toSms(object $notifiable): array
{
return ['message' => 'Your order has been placed.'];
}
public function toSmsOtp(object $notifiable): array
{
return ['otp' => $this->otp];
}
Switching Providers
Set SMS_PROVIDER in .env to fast2sms, msg91, or mock.