搭建免费短信服务:TextBelt开源项目实用教程
TextBelt是一个基于REST API的开源短信发送工具,它利用运营商网关免费传递消息,无需依赖广告或付费API。无论你是构建通知系统、自动化提醒,还是开发小型应用,TextBelt都能提供稳定、无费用的短信功能。
核心优势
- 零成本:通过运营商网关发送,无隐藏费用
- 简洁API:HTTP POST请求即可触发,学习成本低
- 自主可控:自托管部署,数据安全有保障
- 多语言支持:官方及社区提供Go、Python、Ruby等多种客户端库
截至目前,该项目已成功发送超过100万条短信,在自建服务器上表现稳定可靠。
安装与部署
1. 环境准备
确保系统已安装以下组件:
- Node.js(建议版本14及以上)
- Redis(用于消息队列管理)
2. 下载源码
git clone https://gitcode.com/gh_mirrors/te/textbelt
cd textbelt
3. 安装依赖包
npm install
4. 配置邮件参数
编辑 lib/config.js,设置发件人信息:
// 配置示例
mailOptions: {
from: 'your-email@example.com'
}
5. 启动服务
先启动Redis,再运行TextBelt:
redis-server &
node server/app.js
基本使用方法
发送本地短信
通过curl发送POST请求:
curl -X POST http://localhost:9090/text \
-d "number=13800138000" \
-d "message=这是一条来自TextBelt的测试短信"
发送至加拿大号码
curl -X POST http://localhost:9090/canada \
-d "number=1234567890" \
-d "message=Hello from TextBelt!"
国际短信示例
curl -X POST http://localhost:9090/intl \
-d "number=1119491234567" \
-d "message=Ciao! Questo messaggio è gratuito."
API响应格式
成功时返回:
{"success":true}
错误情况:
{"success":false,"message":"超出该手机号的配额限制"}
注意:成功响应仅表示消息已提交给运营商,实际送达率取决于网络环境和运营商规则。
支持的客户端库
TextBelt社区提供了丰富的客户端实现:
- Go: dietsche/textbelt
- Python: ksdme/py-textbelt
- Node.js: minond/textbelt
- PHP: ctrlaltdylan/courier
- Ruby: djds23/textbelt-gem
此外还有浏览器扩展、移动端应用等适配,满足多种使用场景。
注意事项
- 确保
lib/config.js中的fromAddress设置正确 - 部分运营商对短信内容和发送频率有严格限制
- 短信可能显示为配置的邮箱地址(如
txt@textbelt.com) - 部署前请确认遵守当地电信法规
TextBelt为开发者提供了一个简单、高效的免费短信发送方案,无论是个人项目还是小型业务,都能快速集成短信功能。