2026-02-08 17:18:58 +08:00
2026-02-08 17:18:58 +08:00

SmsReceiver-go

短信转发接收端 Go 版本 - 基于 Flask 版本的完整重写

功能特性

  • 短信接收 API (支持 TranspondSms Android APP)
  • 登录验证与会话管理
  • 短信列表展示(分页、搜索、筛选)
  • 统计信息(总数、今日、本周、签名验证)
  • 接收日志查看
  • 短信详情查看
  • 时区转换Asia/Shanghai
  • 签名验证HMAC-SHA256
  • 多 Token 管理

技术栈

  • Web 框架: Gorilla Mux
  • 数据库: SQLite3 (mattn/go-sqlite3)
  • 模板引擎: Go html/template
  • 认证: Cookie-based session
  • 语言: Go 1.23+

项目结构

SmsReceiver-go/
├── main.go              # 入口文件
├── config.yaml          # 配置文件
├── GO_REFACTOR_PROGRESS.md  # 重构进度文档
├── auth/                # 认证模块
├── config/              # 配置加载
├── database/            # 数据库操作
├── handlers/            # HTTP 处理器
├── models/              # 数据模型
├── sign/                # 签名验证
├── static/              # 静态资源
└── templates/           # HTML 模板

快速开始

编译

go build -o sms-receiver main.go

配置

编辑 config.yaml:

server:
  host: "0.0.0.0"
  port: 28001

security:
  enabled: true
  username: "admin"
  password: "admin123"

database:
  path: "sms_receiver_go.db"

api_tokens:
  - name: "默认配置"
    token: "default_token"
    secret: ""
    enabled: true

运行

./sms-receiver

服务将运行在 http://0.0.0.0:28001

访问

默认登录账号:

  • 用户名: admin
  • 密码: admin123

API 接口

接收短信

POST /api/receive
Content-Type: multipart/form-data

from=10086&content=测试短信&timestamp=1234567890&sign=xxx&token=your_token

获取消息列表

GET /api/messages?page=1&limit=20&from=&search=

需要登录认证

获取统计信息

GET /api/statistics

需要登录认证

数据库

独立使用 sms_receiver_go.db,包含以下表:

  • sms_messages: 短信存储
  • receive_logs: 接收日志
  • sqlite_sequence: 自增序列

与 Python 版本对比

特性 Python 版本 Go 版本
运行方式 Python 解释器 编译二进制
部署大小 ~50KB (源码) ~18MB (二进制)
启动速度 ~100ms ~10ms
内存占用 ~30MB ~15MB
并发处理 GIL 限制 原生协程
数据库 sms_receiver.db sms_receiver_go.db

重要说明

  • 本版本与 Python 版本使用独立的数据库文件
  • 数据不互通,属于完全独立的实现
  • 功能已对齐 Python 版本所有核心特性
  • 修复了模板渲染类型兼容性问题

License

MIT License

更新日志

v1.0.0 (2026-02-08)

  • 初始版本发布
  • 完整功能实现
  • 修复模板类型兼容性问题
  • 对齐 Python 版本功能
Description
No description provided
Readme 107 MiB
2026-02-08 19:11:45 +08:00
Languages
Go 46%
HTML 40.2%
CSS 5.3%
Makefile 4.6%
Shell 2.3%
Other 1.6%