HTTPSMS:用 Android 手机做 SMS 网关,通过 HTTP API 让你的手机收发短信!

大家好!这里是AI开源提效指南!
httpsms 是一个开源的短信网关服务。它的核心逻辑非常巧妙:通过在安卓手机上安装 App 作为底层发送/接收终端,配合云端 API 服务,实现“软件定义短信”。
对于开发者来说,你不需要再去对接复杂的第三方短信平台,只需调用 httpsms 提供的简洁 API,即可通过你的手机号直接发送短信,甚至通过 Webhook 将收到的短信推送到你的服务器。
核心理念:你的 Android 手机就是短信网关,通过 HTTP API 控制,完全自托管,数据完全掌控。
而且支持:PHP、Javascript、Python、curl、Go、c-sharp、Java 等主流语言直接调用!

🏗️ 架构设计
HTTPSMS 由三个部分组成:
┌─────────────────────────────────────────────────────┐
│ 你的应用/脚本 │
│ 调用 HTTP API: /v1/messages/send │
└──────────────────────┬──────────────────────────────┘
│ HTTP 202 Accepted
▼
┌─────────────────────────────────────────────────────┐
│ httpSMS API (Go + Fiber) │
│ - 接收消息请求 → 推送到 Push Queue │
│ - 异步处理 → 通过 FCM 通知 Android App │
│ - 接收发送结果 → 返回状态 │
└──────────────────────┬──────────────────────────────┘
│ Firebase Cloud Messaging
▼
┌─────────────────────────────────────────────────────┐
│ Android App (Kotlin + Material Design) │
│ - 接收 FCM 推送通知 │
│ - 调用 Android SMS API 发送短信 │
│ - 返回发送结果给 API │
│ - 收到的短信可转发到 Webhook │
└─────────────────────────────────────────────────────┘消息发送流程
-
用户 → 调用
/v1/messages/sendAPI -
API → 推送通知到队列
-
API → 立即返回 202 Accepted
-
队列 → 异步发送 FCM 推送给 Android 手机
-
Android App → 收到推送 → 调用 Android SMS API 发送
-
Android App → 返回发送结果
-
Android App → 发送送达报告
关键设计:API 立即返回 202,实际发送异步完成,不会阻塞你的请求。
🚀 快速开始
支持 Docker 自托管部署
具体的使用步骤,大家去看官方文档即可!描述的很详细!
文档链接见文章底部!
💻 API 使用示例
支持:PHP、Javascript、Python、curl、Go、c-sharp、Java 等主流语言!我这里给几个示例,大家可以看下调用很简单!
Go SDK
import "github.com/NdoleStudio/httpsms-go"
client := htpsms.New(...)
client.Messages.Send(context.Background(), &httpsms.MessageSendParams{
Content: "这是一条测试短信",
From: "+18005550199",
To: "+18005550100",
})JavaScript/TypeScript SDK
fetch('https://your-server/v1/messages/send', {
method: 'POST',
headers: {
'x-api-key': "xxx",
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"content": "这是一条测试短信",
"from": "+18005550199",
"to": "+18005550100"
})
})
.then(res => res.json())
.then((data) =>console.log(data));Python 直接调用
import requests
import json
headers = {
'x-api-key': "xxx",
'Accept': 'application/json',
'Content-Type': 'application/json'
}
payload = {
"content": "这是一条测试短信",
"from": "+18005550199",
"to": "+18005550100"
}
response = requests.post('https://your-server/v1/messages/send', headers=headers, data=json.dumps(payload))
print(response.json())🔐 安全特性
端到端加密(E2EE)
HTTPSMS 支持 AES-256 军事级加密:
-
🔑 加密密钥只存储在你的 Android 手机上
-
🛡️ 即使服务器被攻破,也无法读取你的短信内容
-
🔒 发送和接收的短信都是加密传输
速率控制(Back Pressure)
# 设置每分钟最多发送 3 条短信
# 即使你一次性调用 100 次,实际也只会按 3 条/分钟的速度发送可以自定义自己的发送频率!
消息过期
# 设置消息有效期为 5 分钟
# 如果 5 分钟内手机没有收到推送,消息自动过期并通知你解决 Android 推送延迟导致短信发送失败的问题。
💡 典型使用场景
-
2FA 验证码:为你的个人应用或内部系统搭建低成本的身份验证系统。
-
运维告警:当服务器宕机或 CPU 飙升时,第一时间通过手机发送告警短信,不依赖邮件或推送,到达率更高。
-
自动化测试:在开发过程中自动接收并验证短信验证码。
-
物联网设备通知:让没有直接连接网络的设备也能通过手机通信回传状态。
🆚 与其他方案对比
成本 免费(自托管)/低费用 按条收费 按条收费 硬件成本
端到端加密 ✅ AES-256 ❌ ❌ ✅ 本地
自托管 ✅ 完全支持 ❌ ❌ ✅
Webhook ✅ ✅ ✅ ❌
速率控制 ✅ ✅ ✅ ❌
消息过期 ✅ ⚠️ ❌ ❌
开源 ✅ AGPL-3.0 ❌ ❌ ❌
📚 参考资源
完整文档: https://docs.httpsms.com
GitHub: https://github.com/NdoleStudio/httpsms免责声明
:
本文内容仅供学习交流,所述工具/方法请遵守相关平台服务条款及法律法规。如涉及第三方服务,请以官方最新政策为准。
🎯 觉得这份工具干货有用?希望收到您的支持:
-
⭐ 星标 / 置顶公众号,第一时间解锁最新工具分享!
-
✅ 点赞「推荐」,让更多技术伙伴发现优质干货!
-
🔗 转发给团队小伙伴,一起高效提效!
-
💬 底部留言区,告诉我您想找的工具/项目方向!
📬 长期追踪优质开源工具
-
关注「AI 开源提效指南」|日更开源神器,玩转技术提效!
-
回复 【容器加速器】,即刻开启你的高效探索之旅~