karnoweb / sms-sender
A fluent SMS manager for Laravel with multi-driver support and automatic failover.
2.0.0
2026-06-09 22:42 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.0
- illuminate/config: ^11.0|^12.0
- illuminate/container: ^11.0|^12.0
- illuminate/contracts: ^11.0|^12.0
- illuminate/database: ^11.0|^12.0
- illuminate/support: ^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^10.0
- phpunit/phpunit: ^11.0
README
A fluent SMS manager for Laravel with multi-driver support and automatic failover.
โจ Features
- ๐ Fluent API โ Chainable, readable interface
- ๐ Auto Failover โ Automatic switch between SMS providers
- ๐ Logging โ Every attempt logged to database
- ๐ Delivery Reports โ Check message delivery status
- ๐ Extensible โ Add custom drivers with a single interface
- โ๏ธ Usage Control โ Daily/monthly limits per driver
- ๐ OTP/Lookup โ Provider-template verification (Kavenegar verify/lookup)
๐ Quick Start
composer require karnoweb/sms-sender:^2.0 php artisan vendor:publish --tag=sms-config php artisan vendor:publish --tag=sms-migrations php artisan migrate
use Karnoweb\SmsSender\Facades\Sms; // Simple message Sms::message('Hello World') ->number('09120000000') ->send(); // OTP via provider template (Kavenegar verify/lookup) Sms::otp(config('sms.lookups.login_otp', 'login')) ->inputs(['token' => '1234']) ->number('09120000000') ->send(); // Multiple recipients Sms::message('Announcement') ->numbers(['09121111111', '09122222222']) ->send(); // Check delivery status $results = Sms::number('09120000000')->checkStatus();
๐ Documentation
Full documentation is available in the docs/ directory.
| # | Topic |
|---|---|
| 01 | Overview |
| 02 | Installation |
| 03 | Configuration |
| 04 | Basic Usage |
See CHANGELOG.md for v2.0 breaking changes.
๐งช Testing
./vendor/bin/phpunit
๐ License
MIT License. See LICENSE for details.