Provides sms notification channel for Laravel.

4.2.0 2022-01-13 09:09 UTC


Build Status Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality StyleCI Shield Code Climate 68747470733a2f2f6170702e666f7373612e636f6d2f6170692f70726f6a656374732f6769742532426769746875622e636f6d2532467a696e67696d6d69636b2532466c61726176656c2d736d732e7376673f747970653d736869656c64

Laravel Sms is used to notify via sms and send a message.


Many thanks to:

  • JetBrains for the excellent PhpStorm IDE and providing me with an open source license to speed up the project development.



  1. PHP >= 7.2.5
  2. Composer
  3. ext-json



Execute the following command to get the latest version of the package:

composer require zing/laravel-sms


Publish Configuration

php artisan vendor:publish --provider "Zing\LaravelSms\SmsServiceProvider"

Add Connections

This package based on overtrue/easy-sms, driver is the gateway.



Create a Notification

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Notification;

class Verification extends Notification implements ShouldQueue
    use Queueable;

    protected $code;

     * Verification constructor.
     * @param $code
    public function __construct($code)
        $this->code = $code;

    public function via()
        return ['sms'];

    public function toSms($notifiable)
        return "验证码 {$this->code},您正在进行身份验证,打死也不要告诉别人哦!";

Add notification route for sms to your notifiable

use Illuminate\Notifications\Notifiable;

class User
    use Notifiable;

    public function routeNotificationForSms($notification)
        return $this->phone;

Send notification

use Illuminate\Support\Facades\Notification;

$user = new User();
// use Notifiable Trait
$user->notify(new Verification('1111'));
// use Notification Facade
Notification::send($user, new Verification('1111'));

Send to anonymous notifiable

use Illuminate\Support\Facades\Notification;
use Zing\LaravelSms\SmsNumber;
use Zing\LaravelSms\Channels\SmsChannel;

// use channel class name
Notification::route(SmsChannel::class, new SmsNumber(18188888888, 86))->notify(new Verification('1111'));
// use channel alias
Notification::route('sms', new SmsNumber(18188888888, 86))->notify(new Verification('1111'));


Send Message

use Zing\LaravelSms\Facades\Sms;

// use default connection
Sms::send(18188888888, 'test message.');
// use specific connection
Sms::connection('null')->send(18188888888, 'test message.');
// or
Sms::via('null')->send(18188888888, 'test message.');

Specific usage

Use specific connection for notification

NOTE: Only support for Zing\LaravelSms\SmsMessage

use Zing\LaravelSms\SmsMessage;

public function toSms($notifiable)
    return (new SmsMessage())->onConnection('log');

Make PhoneNumber notifiable

NOTE: Only support for Zing\LaravelSms\SmsNumber

use Zing\LaravelSms\SmsNumber;

(new SmsNumber(18188888888))->notify(new Verification('1111'));


Laravel Sms is open-sourced software licensed under the MIT license.

FOSSA Status