这个项目能做什么
SMS Gateway for Android 是一款安卓应用,可将智能手机变为短信网关,让应用和服务通过 API 或 CLI 工具以编程方式收发 SMS 消息。它基于 Apache-2.0 许可证分发,使用 Kotlin、Ktor、Room 和 Firebase 构建。
核心能力
- 通过 API 收发 SMS;无需注册,本地模式完全不需要账户。
- 支持 Android 5.0 及更高版本。
- 支持自动分片的多部分消息,以及消息状态跟踪。
- 内置接收消息查看器,支持 SMS、Data SMS 和 MMS,提供标签页和统计信息。
- 通过 webhook 实时通知接收到的 SMS 和 MMS,包括读取此前已接收的消息。
- 支持 MMS:下载通知包含正文和附件,并可发送带图片、音频、视频或文件的 MMS,可选主题和文本正文。
- 当多条消息同时到达时,支持批量 webhook 事件。
- 可取消待发送消息,按状态和类型过滤消息,并按时间段应用发送速率限制。
- 支持 Data SMS,用于二进制载荷(IoT 命令、加密消息)。
- 支持工作时间调度,在配置的时间窗口之外暂停队列。
- 提供 webhook 队列诊断界面,显示待投递和重试情况。
安全与隐私
- 在消息内容和收件人电话号码到达 API 之前进行端到端加密,并在设备上解密。
- 支持私有服务器,因此后端可运行在你自己的基础设施中。
高级功能
- 支持多 SIM 卡和多设备:连接到同一账户(Cloud 或 Private 服务器)的设备会分摊接收消息。
集成
- 支持 webhook 事件,例如 sms:received、sms:batch:received、sms:sent、sms:delivered、sms:failed、sms:cancelled、sms:data-received、mms:received、mms:downloaded、app:started 和 system:ping。
- Webhook 直接从设备发送,因此设备需要具备出站互联网连接。
运行模式
- Local Server:应用在设备上运行 HTTP 服务器,可在局域网内访问,使用基本认证凭据,并在 /docs 提供交互式 Swagger 文档。文档提供了用于发送文本和 MMS 消息的 curl 和 CLI 命令示例。
- Cloud Server:连接到 api.sms-gate.app,适用于使用动态或共享 IP 地址的设备;接收到的消息会上传以便集中访问。也可以改为部署私有服务器。
安装
- 预构建 APK 可从 GitHub Releases 页面获取,包括安全发布版本和不安全的开发版本(允许明文流量,不适用于公共环境)。
- 必需权限:SEND_SMS。可选权限:READ_PHONE_STATE(SIM 选择)、READ_SMS(读取此前消息)、RECEIVE_SMS、RECEIVE_MMS 和 RECEIVE_WAP_PUSH(用于接收 SMS/MMS 的 webhook)。
预期用例包括基于 SMS 的双因素认证、事务性消息、提醒、通知和用户反馈。README 指出,由于移动运营商可能有限制,不建议批量发送。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。