Repolode
overtrue

overtrue/easy-sms

一个 PHP 短信发送组件,用统一写法对接多家短信服务商,支持自动切换与轮询策略。

Star
3,334
Fork
563
未关闭 Issue
23
最近提交
上个月

这是什么?

Easy SMS 是一个 PHP 短信发送组件,用同一套调用方式对接多家短信服务商,包括阿里云、腾讯云、华为云、云片、Twilio 等数十家。开发者只需在配置中填写各家的账号信息,然后调用统一的 send 方法即可,无需为每家服务商单独编写接口代码。

配置多个网关时,组件可按顺序或其他策略依次尝试发送,某家服务商失败时自动切换到下一家。每次发送都会返回按网关区分的结果,包含状态和服务商原始返回值;所有网关都失败时抛出专门的异常。短信内容既可以是纯文本,也可以是模板 ID 加变量,还可以通过自定义短信类统一定义,并支持用闭包注册自定义网关。

组件要求 PHP 8.4 及以上版本,依赖 Guzzle 7 或 8,通过 Composer 安装。

核心功能

  • 01用统一的 send 方法对接数十家国内外短信服务商。
  • 02支持多网关顺序调用或自定义策略,某家失败时自动切换。
  • 03返回按网关区分的发送结果,全部失败时抛出专门异常。
  • 04支持纯文本内容、模板 ID 加变量,以及可复用的短信类。
  • 05无需修改组件源码即可注册自定义网关。

适用场景

  • 在 PHP Web 应用中发送验证码,并配置备用服务商。
  • 不改动业务代码的情况下切换或新增短信服务商。
  • 从 PHP 后端通过阿里云或腾讯云发送模板短信通知。
  • 汇总多家服务商的发送结果用于日志与监控。

快速上手

  1. 1

    使用 Composer 安装该包

    composer require "overtrue/easy-sms"
  2. 2

    用网关配置创建 EasySms 实例并调用 send()

使用前须知

  • 需要 PHP 8.4 或更高版本。
  • 每个短信服务商都需要单独的账号和凭证,使用前必须先在对应服务商注册。
  • Guzzle 8 要求 headers 选项的值为字符串,网关配置中的非字符串值会抛出错误。

标签

#sms#php#messaging#notification#api-client#verification-code#php-sms#sms-client#sms-gateway

常见问题

easy-sms 是什么?
一个 PHP 短信发送组件,用统一写法对接多家短信服务商,支持自动切换与轮询策略。 Easy SMS 是一个 PHP 短信发送组件,用同一套调用方式对接多家短信服务商,包括阿里云、腾讯云、华为云、云片、Twilio 等数十家。开发者只需在配置中填写各家的账号信息,然后调用统一的 send 方法即可,无需为每家服务商单独编写接口代码。
easy-sms 可以免费使用吗?用的什么许可证?
easy-sms 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
easy-sms 还在维护吗?
半年内有更新。easy-sms 最近一次提交是在 2026年10月4日。
easy-sms 适合用来做什么?
在 PHP Web 应用中发送验证码,并配置备用服务商。 不改动业务代码的情况下切换或新增短信服务商。 从 PHP 后端通过阿里云或腾讯云发送模板短信通知。 汇总多家服务商的发送结果用于日志与监控。
easy-sms 怎么安装和运行?
使用 Composer 安装该包: composer require "overtrue/easy-sms" 用网关配置创建 EasySms 实例并调用 send()
在哪里获取 easy-sms?
源代码和安装说明在 GitHub 上:https://github.com/overtrue/easy-sms

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目