自托管短信服务,使用 Android 手机作为网关提供 HTTP API,支持发送/接收短信,兼容主流短信网关。
Android SMS Gateway. 自发托管的短信网关使用带有HTTP API集成的Android手机.Fulcontrol,没有第三方依赖性.
功能概述
Android SMS Gateway. 自发托管的短信网关使用带有HTTP API集成的Android手机.Fulcontrol,没有第三方依赖性.是一项面向实际任务的技能,主要用于Overview. 这种技能可以发送和接收短信 mes.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Android 短信网关
基于 Android 手机自托管的短信网关,支持通过 HTTP API 集成。完全自主可控,无任何第三方依赖。
概述
本技能通过运行短信网关应用(SMS Gateway app)的 Android 手机实现短信的发送与接收。该手机暴露一个本地 HTTP API,本技能通过该 API 发送短信并轮询已接收的短信。
支持的应用
主推方案(原始脚本)
- SMS Gateway API(⭐ 推荐)— https://github.com/itsmeichigo/SMSGateway
- SMSGate — https://github.com/iamsmgate/smsgate
- SMS Forwarder — https://github.com/pppscn/SmsForwarder
capcom6/android-sms-gateway(新脚本)
- SMS Gateway for Android — https://github.com/capcom6/android-sms-gateway
- ✅ 端到端加密(E2E Encryption)
- ✅ 支持本地模式 + 云服务模式 + 私有服务器模式
- ✅ 多设备支持
- ✅ 支持入站短信 Webhook 回调
- ✅ 支持多收件人批量发送
快速上手
前置条件
- 具备短信功能的 Android 手机
- 在手机上安装短信网关应用
- 手机与 OpenClaw 主机处于同一局域网(或已配置端口转发)
- 在应用中启用 API 访问权限
初始化配置(仅需一次)
# 1. 在 Android 设备上安装 SMS Gateway API 应用 # 下载地址:https://github.com/itsmeichigo/SMSGateway/releases # 2. 配置应用: # - 启用 HTTP API 服务 # - 设置 API Token / 密码 # - 记录手机的 IP 地址和端口号(默认:8080) # 3. 测试连通性 curl http://PHONE_IP:8080/api/v1/status -H "Authorization: Bearer YOUR_TOKEN" # 4. 将配置保存至 TOOLS.md(参见「配置」章节)
命令
发送短信
# 基础发送 ./scripts/send_sms.sh --to "+1234567890" --message "Hello from OpenClaw" # 指定配置文件 ./scripts/send_sms.sh --config ~/.openclaw/sms-gateway.json --to "+1234567890" --message "Alert: Security scan complete" # 通过环境变量 export SMS_GATEWAY_URL="http://192.168.1.100:8080" export SMS_GATEWAY_TOKEN="your-api-token" ./scripts/send_sms.sh --to "+1234567890" --message "Test message"
检查已接收短信
# 列出最近 10 条已接收短信 ./scripts/receive_sms.sh --limit 10 # 查询指定时间戳之后的新消息 ./scripts/receive_sms.sh --since "2026-02-22T00:00:00Z"
检查网关状态
# 验证网关是否在线 ./scripts/check_status.sh
批量发送短信
# 向多个收件人发送 ./scripts/bulk_sms.sh --recipients "+1234567890,+0987654321" --message "Broadcast message" # 从文件读取号码列表(每行一个号码) ./scripts/bulk_sms.sh --recipients-file ./contacts.txt --message "Alert"
配置
方式一:环境变量
export SMS_GATEWAY_URL="http://192.168.1.100:8080" export SMS_GATEWAY_TOKEN="your-api-token" export SMS_GATEWAY_TIMEOUT="30"
方式二:配置文件
创建 ~/.openclaw/sms-gateway.json:
{
"gateway_url": "http://192.168.1.100:8080",
"api_token": "your-api-token",
"timeout_seconds": 30,
"default_sender": "+1234567890",
"retry_count": 3
}
方式三:命令行参数
所有脚本均支持 --url 和 --token 参数:
./scripts/send_sms.sh --url "http://192.168.1.100:8080" --token "token" --to "+1234567890" --message "Hi"
capcom6/android-sms-gateway 配置
环境变量
export SMS_GATEWAY_URL="http://192.168.1.100:8080" # 本地服务 # export SMS_GATEWAY_URL="https://api.sms-gate.app/3rdparty/v1" # 云服务 export SMS_GATEWAY_USER="your-username" export SMS_GATEWAY_PASS="your-password" export SMS_GATEWAY_TIMEOUT="30"
配置文件
创建 ~/.openclaw/sms-gateway-capcom6.json:
{
"gateway_url": "http://192.168.1.100:8080",
"gateway_user": "your-username",
"gateway_pass": "your-password",
"server_mode": "local",
"timeout_seconds": 30
}
使用示例
# 发送短信 ./scripts/send_sms_capcom6.sh --to "+1234567890" --message "Hello" # 使用云服务模式 ./scripts/send_sms_capcom6.sh --mode cloud --to "+1234567890" --message "Hello" # 注册入站短信 Webhook ./scripts/register_webhook_capcom6.sh --url "https://your-server.com/webhook" # 批量发送(单次 API 调用支持多收件人) ./scripts/bulk_sms_capcom6.sh --multi --recipients "+1234567890,+0987654321" --message "Alert" # 检查状态 ./scripts/check_status_capcom6.sh
保存至 TOOLS.md
将配置信息添加至 TOOLS.md 以供后续参考:
### Android SMS Gateway - **App:** SMS Gateway API (itsmeichigo/SMSGateway) - **Phone:** Samsung Galaxy, IP: 192.168.1.100 - **Port:** 8080 - **Token:** Stored in ~/.openclaw/sms-gateway.json (chmod 600)
API 参考文档
详见 references/api_reference.md,其中包含各支持应用的完整 API 接口说明。
安全注意事项
网络层安全
- 仅限局域网:尽可能将网关部署于本地网络内
- 防火墙限制:严格限制对网关端口的访问权限
- HTTPS:如需对外暴露服务,请启用 HTTPS(需应用支持)
- VPN:远程访问时优先使用 VPN,避免直接端口转发
capcom6 特有安全特性
| 特性 | 优势 |
|---|---|
| E2E Encryption | 消息内容在 API 传输前即完成端到端加密 |
| Private Server | 可自行部署后端服务,彻底摆脱云依赖 |
| Basic Auth | 采用标准 HTTP Basic Authentication 协议 |
| Webhooks | 入站短信由设备主动推送,无需轮询 |
建议:为获得最高安全性,请使用 capcom6 的私有服务器(Private Server)模式: https://docs.sms-gate.app/getting-started/private-server/
认证机制
- 强 Token:使用随机生成的 API Token(建议 ≥32 字符)
- Token 轮换:定期更新 Token
- 文件权限:
chmod 600 ~/.openclaw/sms-gateway.json
速率限制
- 防垃圾发送:在业务流程中主动实施发送频率限制
- 运营商限制:遵守短信运营商速率限制(通常约 1 条/秒)
- 队列系统:批量发送场景应使用队列机制
故障排查
网关无响应
# 检查手机网络连通性 ping PHONE_IP # 检查 API 接口可达性 curl -v http://PHONE_IP:8080/api/v1/status # 检查应用运行状态(在手机上操作): # - 打开 SMS Gateway 应用 # - 确认服务已启动 # - 查看应用内日志
认证失败
# 验证 Token 是否有效 curl -v http://PHONE_IP:8080/api/v1/status -H "Authorization: Bearer YOUR_TOKEN" # 检查 Token 格式(部分应用使用不同认证头字段) # 具体认证方式请查阅 references/api_reference.md
短信未成功发送
# 检查手机信号强度 # 检查短信余额或套餐状态 # 查看应用内日志 # 确认收件人号码格式(必须含国家代码)
使用示例
安全告警系统
# 扫描发现异常时自动发送告警 ./scripts/send_sms.sh --to "+1234567890" --message "🛡️ ALERT: Vulnerability found on 192.168.1.50"
双因素认证(2FA)验证码
# 发送 2FA 验证码(可集成至自有认证系统) CODE=$(openssl rand -base64 6 | tr -d '/+=' | head -c 6) ./scripts/send_sms.sh --to "$USER_PHONE" --message "Your verification code: $CODE"
定时提醒
# 每日安全检查提醒(Cron 任务) # crontab -e 0 9 * * * /path/to/send_sms.sh --to "+1234567890" --message "Daily security check: Review logs"
监控系统集成
# Nagios / Zabbix 告警脚本示例 #!/bin/bash STATUS=$1 if [ "$STATUS" != "OK" ]; then ./scripts/send_sms.sh --to "+1234567890" --message "MONITOR ALERT: $STATUS" fi
脚本列表
原始方案(itsmeichigo/SMSGateway)
scripts/send_sms.sh— 发送单条短信scripts/receive_sms.sh— 获取已接收短信scripts/check_status.sh— 检查网关健康状态scripts/bulk_sms.sh— 批量发送短信(多收件人)
capcom6/android-sms-gateway
scripts/send_sms_capcom6.sh— 发送单条短信scripts/register_webhook_capcom6.sh— 注册入站短信 Webhookscripts/check_status_capcom6.sh— 检查网关健康状态scripts/bulk_sms_capcom6.sh— 批量发送短信(支持多收件人单次 API 调用)
参考资料
- API 参考文档 — 各支持应用的详细 API 文档
- SMS Gateway API — 主推支持应用
- SMSGate — 替代方案
- SMS Forwarder — 支持短信转发的替代方案
备注
- 字符编码:脚本原生支持 UTF-8,兼容国际化字符
- 长短信处理:自动拆分超长消息(GSM 编码 >160 字符,Unicode 编码 >70 字符)
- 送达回执:部分应用支持投递状态回调(详见 api_reference.md)
- 双卡支持:若手机为双 SIM 卡,部分应用支持指定 SIM 卡槽(取决于具体应用实现)
热门AI工具
相关专题
实现方法有使用MediaPlayer实现、使用SoundPool实现两种。可以根据具体的需求选择适合的方法进行实现。想了解更多语音播放的相关内容,可以阅读本专题下面的文章。
824
2024.03.01
android重启应用有通过Intent、PendingIntent、系统服务、Runtime等方法。本专题为大家提供Android相关的文章、下载、课程内容,供大家免费下载体验。
465
2023.10.18
android权限限制可以使用Root权限、第三方权限管理应用程序、ADB命令和Xposed框架解开。详细介绍:1、Root权限,通过获取Root权限,用户可以解锁所有权限,并对系统进行自定义和修改;2、第三方权限管理应用程序,用户可以轻松地控制和管理应用程序的权限;3、ADB命令,用户可以在设备上执行各种操作,包括解锁权限;4、Xposed框架,用户可以在不修改系统文件的情况下修改应用程序的行为和权限。
3917
2023.09.19
Android是一种功能强大、灵活可定制、应用丰富、多任务处理能力强、兼容性好、网络连接能力强的操作系统。本专题为大家提供android相关的文章、下载、课程内容,供大家免费下载体验。
2247
2023.08.22
android开发三大框架是XUtil框架、volley框架、ImageLoader框架。本专题为大家提供android开发三大框架相关的各种文章、以及下载和课程。
842
2023.08.14
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
热门下载
相关下载
精品课程