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
使用 Composer 安装该包
composer require "overtrue/easy-sms" - 2
用网关配置创建 EasySms 实例并调用 send()
使用前须知
- 需要 PHP 8.4 或更高版本。
- 每个短信服务商都需要单独的账号和凭证,使用前必须先在对应服务商注册。
- Guzzle 8 要求 headers 选项的值为字符串,网关配置中的非字符串值会抛出错误。
标签
常见问题
- 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 数据每日更新。
相关项目
开源通知与智能体通信基础设施,通过统一 API 跨站内信、邮件、短信、推送和聊天渠道发送消息。
4万+63 本周4527TypeScriptOther维护活跃更新于 22小时前
Icinga 2 是一款监控服务器,用于检查网络资源可用性、在故障时通知用户并生成性能数据。
2245623C++GPL-3.0维护活跃更新于 20小时前
一个 PHP 库,把 cURL 封装成面向对象的简洁接口,用于发送 HTTP 请求和调用 Web API。
3299+1 本周802PHPUnlicense维护活跃更新于 5天前