Agent Skills
返回列表
自建手机短信网关

自建手机短信网关

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_dca971df/traccar-sms-gateway。

技能介绍

要解决的问题

给自动化脚本、CI 流水线或 agent 接一条短信通道,通常意味着去找第三方短信服务商:注册账号、充值、签接口文档、处理签名和回调。发送成本只是小问题,更麻烦的是消息要绕一圈第三方服务器,发送内容、发送时机都不完全在自己手里。如果你的需求只是「让程序往某个手机号发一条通知」,手里正好有一部安卓手机和一张 SIM 卡,那直接用这部手机当网关,链路最短、行为最透明。

技能如何工作

这个技能封装的是 Traccar SMS Gateway 这个安卓 App。安装并开启它的 Local Service 之后,手机会在局域网内暴露一个极简的 HTTP 接口,收到请求就把短信从本机 SIM 卡发出去——不需要运营商侧的任何改造,也不用向短信服务商付一分钱。

技能自带三样东西:

  • scripts/send_sms.py:纯 Python 标准库实现,零依赖,负责组装并发送 HTTP 请求;
  • scripts/send_sms.sh:等价的 curl 版本,参数与环境变量完全一致,适合没有 Python 的机器;
  • references/api.md:完整接口约定,包括字段格式、连通性检测命令和 Traccar 服务器端配置写法。

调用方式很朴素:提供 endpoint、token、to 和 message 即可。endpoint 和 token 支持用环境变量一劳永逸地设置,命令行参数优先级更高。发送前可以对 endpoint 发一次 GET 做连通性检测,接口会返回一段说明文本。成功时返回 HTTP 200,退出码为 0。

接口约定里几个关键点:to 必须是带前导 + 的国际 E.164 格式;App 无状态,没有 from 字段,短信从手机自身的 SIM 卡号发出;也不保存任何送达回执。

适用边界与注意点

  • 仅限局域网。 endpoint 是内网地址,不做端口转发就无法从公网访问,也不建议硬上端口转发。
  • App 必须活着。 手机休眠或 App 被杀,请求就会失败,需要关闭该 App 的电池优化并保持 Wi-Fi 连接。
  • 无状态、无回执。 App 不持久化消息,发完就查不到状态。
  • 长短信按条计费。 超长内容会被拆成多条拼接短信发送。
  • Token 是 bearer 凭证。 同网络内任何知道 token 的人都能用这部手机发短信并产生话费,不要硬编码进代码仓库,优先走环境变量。
  • 该通道按设计就是局域网明文 HTTP,只在可信网络里使用。

使用场景

  • 自建 CI 流水线需要发通知,想用 HTTP 调用自己手机发短信
  • 智能家居脚本触发报警,需要通过局域网让手机 SIM 卡发 SMS
  • 给 Traccar 服务器接短信通道,希望直接用手机的本地 HTTP 接口发送
  • 想用闲置安卓手机当私有短信网关,从脚本自动发验证码或提醒

适合人员

  • 自建自动化流程的开发者,希望不依赖第三方服务发送短信通知
  • 运维工程师,需要为 Traccar 服务器配置手机短信发送通道
  • 喜欢 DIY 的 Maker,想用闲置安卓手机搭建私有短信网关
  • 智能家居玩家,想让自动化脚本直接通过手机发短信报警