pdapnz/yii2-sms-sigmasms
Yii2 SMS 的 SigmaSMS 插件,让发送短信变得和发送邮件一样简单!
Requires
- php: >=7.0.0
- wadeshuler/yii2-sms: ~1.0
- yiisoft/yii2: ~2.0.11
- yiisoft/yii2-httpclient: ^2.0
This package is auto-updated.
Last update: 2024-09-29 06:03:00 UTC
README
一个基于 Yii2 扩展 Yii2 SMS 的 SigmaSMS 插件,让发送短信变得和发送邮件一样简单!
安装
安装此扩展的首选方式是通过 composer
运行以下命令
composer require --prefer-dist pdapnz/yii2-sms-sigmasms
或者
"pdapnz/yii2-sms-sigmasms": "~1.0"
将以下内容添加到您的应用程序的 composer.json 文件的 require 部分。
然后在您的 main-local.php(高级)或 web.php(基本)中添加一个新的 sms 组件,如下所示
'sms' => [
'class' => 'pdapnz\sms\sigmasms\Sms',
// Advanced app use '@common/sms', basic use '@app/sms'
'viewPath' => '@common/sms', // Optional: defaults to '@app/sms'
// send all sms to a file by default. You have to set
// 'useFileTransport' to false and configure the messageConfig['from'],
'useFileTransport' => true,
'messageConfig' => [
'from' => 'B-Media', // Your SigmaSMS upproved sender name
],
// You username and password at https://online.sigmasms.ru/
'username' => 'yourUsername',
'password' => 'yourPassword',
],
用法
您可以通过两种方式发送短信。一种使用视图文件,就像邮件发送器一样,通过在 compose() 调用中传递它。唯一的区别是,您不需要指定 html/text 数组键。只需传递字符串即可,因为短信不使用 html。
使用视图文件
在您的控制器/模型中使用它,如下所示
Yii::$app->sms->compose('test-message', ['name' => 'Wade'])
//->setFrom('12345') // if not set in config, or to override
->setTo('+15558881234')
->send();
您需要一个视图文件,该文件位于您的 viewPath 所指向的位置。默认情况下,它是 @app/sms。您可以在上面的配置中看到我们将其重写为 @common/sms。这与 Yii2 Advanced 用于电子邮件视图的位置类似,即“common”目录。
视图文件:common/sms/test-message.php(高级)或 /sms/test-message.php(基本)
Hello <?= $name ?> This is a test!
Thanks!
不使用视图文件
当您需要快速发送大量文本消息时,出于性能考虑,您可能想跳过视图文件,或者您可能觉得它对您的使用来说过于复杂。
$name = "Wade";
Yii::$app->sms->compose()
//->setFrom('12345') // optional if set in main config
->setTo('+15558881234')
->setMessage("Hey {$name} this is a test!")
->send();
setMessage() 是一个友好的函数名,或者别名,为 setTextBody()。由于短信只处理文本而不是 html,我认为这更干净。然而,如果您熟悉邮件发送器处理事物的方式,setTextBody() 也可以正常工作。两者都可以。
确定发送成功
返回一个布尔值,所以很简单
$result = Yii::$app->sms->compose()
->setTo('+15558881234')
->setMessage("Hey {$name} this is a test!")
->send();
if ( $result === true ) {
echo 'SMS was sent!';
} else {
'Error sending SMS!';
}
我必须调用 setFrom() 吗?
只有当您在配置中的 messageConfig 数组中未指定 from 号码时,才需要使用 setFrom()。
如果您想覆盖主配置中的 from 地址,则可以专门调用 setFrom()。
如果您只从 1 个号码发送,只需配置它,不要直接调用它,这样您就不必稍后更改多个地方。
提示:如果您有多个号码,请使用 Yii2 params 数组作为一键修改号码的方便位置。
在哪里可以找到错误日志?
在发送过程中遇到异常时,它们将被记录在 @runtime/sms 下,并按异常类型命名。