Laravel 短信发送组件 - easy-sms
安装 easy-sms
easy-sms 是安正超写的一个短信发送组件,利用这个组件,我们可以快速的实现短信发送功能。
$ composer require "overtrue/easy-sms"
由于该组件还没有 Laravel 的 ServiceProvider,为了方便使用,我们可以自己封装一下。
首先在 config 目录中增加 easysms.php 文件,
$ touch config/easysms.php
填入如下内容。
config/easysms.php
<?php
return [
// HTTP 请求的超时时间(秒)
'timeout' => 5.0,
// 默认发送配置
'default' => [
// 网关调用策略,默认:顺序调用
'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
// 默认可用的发送网关
'gateways' => [
'yunpian',
],
],
// 可用的网关配置
'gateways' => [
'errorlog' => [
'file' => '/tmp/easy-sms.log',
],
'yunpian' => [
'api_key' => env('YUNPIAN_API_KEY'),
],
],
];
然后创建一个 ServiceProvider
$ php artisan make:provider EasySmsServiceProvider
修改文件
app/providers/EasySmsServiceProvider.php
<?php
namespace App\Providers;
use Overtrue\EasySms\EasySms;
use Illuminate\Support\ServiceProvider;
class EasySmsServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(EasySms::class, function ($app) {
return new EasySms(config('easysms'));
});
$this->app->alias(EasySms::class, 'easysms');
}
}
最后 打开config/app.php 在 providers 中增加 App\Providers\EasySmsServiceProvider::class
,
.
.
.
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
App\Providers\EasySmsServiceProvider::class,
.
.
.
在 .env
中配置 YUNPIAN_API_KEY
,注意下面需要替换为你自己的 key:
.
.
.
# 云片
YUNPIAN_API_KEY=9c60bdd**********
在.env.example
中也加入配置示例,提交到版本库,方便以后部署
# 云片
YUNPIAN_API_KEY=
调试短信
我们使用 artisan
调试一下,试试能否收到短信。
打开 tinker
$ php artisan tinker
输入如下代码,注意将 17097226566 替换为你自己的手机。
$sms = app('easysms');
try {
$sms->send(17097226566, [
'content' => '【Lbbs社区】您的验证码是1234。如非本人操作,请忽略本短信',
]);
} catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) {
$message = $exception->getException('yunpian')->getMessage();
dd($message);
}
相信你的手机上已经收到验证码了。
本作品采用《CC 协议》,转载必须注明作者和本文链接