LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

[点晴永久免费OA]旧安卓变短信网关:httpSMS 上手教程

admin
2026年7月19日 10:34 本文热度 68

为了收验证码,多背一台手机,这事我太懂了。

一台主力机,一台工作号,一台海外号,或者一张专门收服务通知的 SIM 卡。卡本身还好,麻烦在每次登录后台、云服务、银行、交易所、开发者账号时,那台手机刚好不在手边。

httpSMS 的思路很直接:把一台旧 Android 手机变成短信网关。手机继续插着 SIM 卡、连着电、放在家里或办公室;你用网页、 API 或 Webhook 收发短信。

它适合开发者、小团队,也适合只想少带一台手机的人。

httpSMS 是一个开源项目,GitHub 仓库是 NdoleStudio/httpsms。项目说明里写得很直白:它可以让 Android 手机充当 SMS Gateway,通过简单的 HTTP API 发送和接收短信。

它有三块东西:

  • • Android App:装在插卡手机上,负责真正收发短信
  • • Web UI:管理手机、 API Key 、短信记录、 Webhook
  • • API 服务:给程序调用,发送短信、查询短信、处理事件

公开仓库显示它采用 AGPL-3.0 许可证。官方服务入口是 https://httpsms.com,文档入口是 https://docs.httpsms.com,API 文档在 https://api.httpsms.com/index.html

这类工具最适合做两件事。

第一,远程收验证码。旧手机留在固定位置,收到短信后通过 httpSMS 平台或 Webhook 转到你的系统里。

第二,把短信接进自动化流程。比如服务器报警、内部系统通知、表单提交后短信提醒、 CRM 给客户发通知。

它能解决什么痛点

少带一台手机

如果你有一张专门收验证码的卡,可以把它插到旧 Android 上。手机放在家里,保持联网和充电。以后验证码到了,可以在 Web UI 查看,也可以转发到自己的 Webhook 。

这对经常换设备、远程办公、管理多个账号的人很实用。

不再依赖虚拟号码

很多国家或地区买不到好用的虚拟号码。就算可以买,也经常遇到平台拒收、号码被回收、收不到一次性验证码的问题。

httpSMS 走的是你自己的实体 SIM 卡。平台看到的还是这个真实手机号,只是收发短信的入口变成了 HTTP API 。

用 API 管短信

官方 API 支持发送短信、查询短信、创建 Webhook 、管理手机和 API Key 。开发者可以把短信接到自己的业务系统里。

比如发送一条短信,可以调用 /messages/send

curl -X POST 'https://api.httpsms.com/v1/messages/send' \
  -H 'x-api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "content": "这是一条测试短信",
    "from": "+180****0199",
    "to": "+180****0100"
  }'

这里的 YOUR_API_KEY 换成自己的 Key 。不要把 Key 写进公开仓库,也不要发到群里。

最简单的上手流程

先用官方托管版跑通,不急着自托管。

1. 准备一台 Android 手机

最好选一台不再日常使用的 Android 机。插入要收短信的 SIM 卡,接上电源,连上稳定 Wi-Fi 或移动网络。

系统层面要做几件事:

  • • 允许短信读取和发送权限
  • • 关闭过度省电策略
  • • 允许应用后台运行
  • • 如果系统提示“受限设置”,按官方教程放开权限

很多国产 Android 系统会杀后台。收验证码这类场景,后台保活比功能列表更重要。

2. 注册 httpSMS 账号

打开:

https://httpsms.com

登录后进入后台,添加手机。后台会给你后续绑定和 API 使用需要的信息。

3. 安装 Android App

项目 README 里给的 Android App 下载入口是:

https://apk.httpsms.com/HttpSms.apk

也可以从 GitHub Releases 找安装包:

https://github.com/NdoleStudio/httpsms/releases

安装后按提示登录、授权短信权限、绑定手机号。

4. 建一个 API Key

后台里进入 API Key 相关页面,创建一个新的 Key 。建议给 Key 起一个容易识别的名字,比如:

home-otp-phone

然后把 Key 放到自己的密码管理器里。测试时可以临时放在环境变量里:

export HTTPSMS_API_KEY='YOUR_API_KEY'

公开文章里不要贴真实 Key 。团队里也不要把它写死在前端代码里。

5. 先发一条测试短信

确认手机在线后,用 API 发一条测试短信:

curl -X POST 'https://api.httpsms.com/v1/messages/send' \
  -H "x-api-Key: $HTTPSMS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "content": "httpSMS 测试",
    "from": "+180****0199",
    "to": "+180****0100"
  }'

如果请求被接受,后续发送动作由 Android 手机完成。 README 里的流程是:API 收到请求,推送通知到 Android App,App 拉取消息,再调用系统短信能力发送。

怎么收验证码

收验证码的关键是 Webhook 。

当旧手机收到短信,httpSMS 可以把短信事件转发到你提供的回调地址。你可以把它接到自己的服务器、 n8n 、自动化平台、内部机器人,或者只写一个很小的接收服务。

创建 Webhook 时需要提供:

  • • 回调 URL
  • • 监听的手机号
  • • 事件列表,比如 message.phone.received
  • • signing key,用来验证请求签名

一个简化的创建示例:

curl -X POST 'https://api.httpsms.com/v1/webhooks' \
  -H "x-api-Key: $HTTPSMS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://example.com/httpsms-webhook",
    "phone_numbers": ["+180****0199"],
    "events": ["message.phone.received"],
    "signing_key": "YOUR_WEBHOOK_SIGNING_KEY"
  }'

真正使用时,signing_key 要换成随机长字符串,并且只保存在服务器端。

如果只是自己收验证码,可以先让 Webhook 做一件很简单的事:收到短信后,把“发信号码、收信号码、短信内容、时间”记录到数据库,或转发到你自己的私有通知渠道。

不要把验证码转发到公开群,不要把短信内容直接写进可公开访问的日志。

Python 接收 Webhook 示例

下面是一个最小 Flask 示例,只演示接收流程。生产环境要加签名校验、访问控制和日志脱敏。

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.post('/httpsms-webhook')

def
 httpsms_webhook():
    payload = request.get_json(force=True)

    event = payload.get('event')
    message = payload.get('message', {})

    if
 event == 'message.phone.received':
        sender = message.get('from')
        receiver = message.get('to')
        content = message.get('content')
        timestamp = message.get('timestamp')

        print
({
            'from'
: sender,
            'to'
: receiver,
            'content'
: content,
            'timestamp'
: timestamp,
        })

    return
 jsonify({'ok': True})

if
 __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

本地测试可以用内网穿透工具临时暴露地址。正式使用时,最好放在 HTTPS 域名后面,并做签名校验。

自托管怎么跑

如果你不想把短信内容经过官方托管服务,可以研究自托管。仓库提供了 docker-compose.yml,会启动 PostgreSQL 、 Redis 、 API 和 Web UI 。

先拉代码:

git clone https://github.com/NdoleStudio/httpsms.git
cd
 httpsms

复制环境变量模板:

cp web/.env.docker web/.env
cp
 api/.env.docker api/.env

然后按 README 准备这些外部依赖:

  • • Firebase:用于 FCM 推送,让服务器通知 Android App 取消息
  • • SMTP:用于账号和通知邮件
  • • Cloudflare Turnstile:用于保护搜索接口,减少滥用
  • • Android google-services.json:用于构建 Android App

准备好后启动:

docker compose up --build

默认 Web UI 在:

http://localhost:3000

API 在:

http://localhost:8000

自托管的难点不在 Docker,而在 Firebase 、安卓 App 构建、推送链路和后续运维。普通用户只想少带一台手机,先用官方托管版更省事。团队要处理敏感短信,再评估自托管成本。

安全边界要说清楚

httpSMS 很方便,但短信本身并不安全。尤其是验证码短信,里面往往直接关系到账户登录。

使用时至少注意这几件事:

  • • 只接自己的手机和自己的 SIM 卡
  • • 不要拿它做垃圾短信、骚扰短信或绕过平台规则
  • • API Key 放在服务端,不放进前端页面
  • • Webhook 必须用 HTTPS
  • • Webhook 日志要脱敏,验证码不要长期明文保存
  • • 用强随机 signing key,并在服务端校验签名
  • • 旧手机要设置锁屏密码,最好只装必要应用
  • • 手机长期插电时注意电池老化和安全
  • • 运营商套餐、短信频率、当地法规仍然适用

官方 README 还提到端到端加密:可以设置加密 Key,让服务端无法直接看到短信内容。这个能力很有价值,但前提是你自己保管好 Key 。 Key 丢了,别人可能看不到内容,你自己也可能解不开。

它适合哪些人

如果你只是偶尔收一个验证码,手机都在手边,没必要折腾。

如果你有长期放在抽屉里的第二张卡,或者需要把短信接进工作流,httpSMS 就很合适。

典型场景包括:

  • • 海外手机号放在家里,人在外面也能收验证码
  • • 公司内部系统需要短信通知,但不想买一套短信网关硬件
  • • 开发者做短信 API 测试,想用自己的实体手机
  • • 小团队把客户短信、系统提醒、表单通知接入自动化工具
  • • 旧 Android 手机重新利用,不再只当备用机吃灰

我的建议是先小范围试:一台旧手机、一张低风险 SIM 卡、一个只转发到私有渠道的 Webhook 。跑稳以后,再考虑接更重要的账号。

这类工具省的是“手机必须在手边”的麻烦。至于验证码和账号安全,还是要按高风险信息处理。

来源链接:

  • • https://github.com/NdoleStudio/httpsms
  • • https://httpsms.com
  • • https://docs.httpsms.com
  • • https://api.httpsms.com/index.html


阅读原文:点击这里


该文章在 2026/7/19 10:34:03 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-9  粤公网安备44030602007207号