标题: 本站的短信验证码功能终于修好了,用AI做了个基于Termux的短信发送网关
时间: 11小时前发布,11小时前修改
云片不对个人用户服务了,所以短信验证码一直不能用,我只能自己做个网关用自己的手机发送验证码。
项目地址:
https://github.com/hu60t/hu60sms
https://gitee.com/hu60t/hu60sms
我设了限额,每个号码30秒只能发1条,每天最多10条,所有号码加起来每天最多100条。
目前程序运行在我的 p50pro 手机上,不知道长期运行稳不稳定,先试试看吧。
一个运行在 Android 手机上的轻量级 HTTP 短信网关,通过 Termux 环境调用 termux-sms-send 发送短信,对外暴露 RESTful API。
编辑 config.json:
{
"apikey": "your-api-key-here",
"port": "8080",
"slot": "0",
"rate_limit_sec": 30,
"rate_limit_daily": 10,
"global_daily_limit": 100
}
配置项说明:
| 配置项 | 类型 | 说明 |
|---|---|---|
apikey |
string | API 密钥,用于验证请求 |
port |
string | 监听端口 |
slot |
string | SIM 卡槽号。从 0 开始:卡 1 = "0",卡 2 = "1"。留空 "" 表示使用系统默认 |
rate_limit_sec |
int | 同一号码两次发送间的最小间隔(秒) |
rate_limit_daily |
int | 同一号码每天最大发送条数 |
global_daily_limit |
int | 全局每天最大发送条数(所有号码合计),0 表示不限制 |
关于 slot(卡槽):slot 编号从 0 开始:
"0"— SIM 卡 1"1"— SIM 卡 2留空则使用系统默认 SIM 卡。
在 PC 上交叉编译为 Android 可执行文件:
# Linux / macOS
./build.sh
# Windows
build.bat
编译产物为 hu60sms,目标平台为 android/arm64。
将编译好的 hu60sms 二进制文件和 config.json 通过任意方式传输到手机,config.json 需与 hu60sms 可执行文件放在同一目录。
在手机 Termux 中,cd 到 hu60sms 所在目录,然后执行:
chmod +x ./hu60sms
./hu60sms
服务启动后默认监听 :8080 端口。
请求:
POST /sms
Content-Type: application/x-www-form-urlencoded
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
apikey |
string | 是 | API 密钥,需与 config.json 中一致 |
mobile |
string | 是 | 目标手机号 |
text |
string | 是 | 短信内容 |
卡槽由服务端配置文件
slot字段统一指定,无需在请求中传递。
示例:
curl -X POST http://172.23.0.1:8080/sms \
-d "apikey=your-api-key-here&mobile=13800138000&text=您的验证码是123456"
响应:
{"code": 200, "message": "SMS sent successfully"}
错误响应:
| HTTP 状态码 | code | 说明 |
|---|---|---|
| 403 | 403 | API Key 无效 |
| 400 | 400 | 缺少必填参数 |
| 429 | 429 | 触发频率限制 |
| 500 | 500 | 短信发送失败 |
hu60sms/
├── main.go # 主程序(HTTP 服务 + 短信发送逻辑)
├── config.json # 配置文件
├── go.mod # Go 模块定义
├── build.sh # Linux/macOS 编译脚本
└── build.bat # Windows 编译脚本
MIT License
『回复列表(2|隐藏机器人聊天)』