Initial commit: SMS Forwarder project with Docker support

This commit is contained in:
zack
2025-07-17 19:30:35 +08:00
commit 152e136673
29 changed files with 3583 additions and 0 deletions

149
docs/iphone-setup.md Normal file
View File

@ -0,0 +1,149 @@
# iPhone 快捷指令配置指南
本指南将帮助你在 iPhone 上设置快捷指令,自动将收到的短信转发到你的 Android 设备。
## 前提条件
1. iPhone 上已安装"快捷指令"应用
2. SMS Forwarder 服务器已部署并运行
3. 已获取服务器的 API 密钥
## 步骤 1: 创建快捷指令
1. 打开"快捷指令"应用
2. 点击右上角的"+"创建新快捷指令
3. 点击"添加操作"
## 步骤 2: 配置快捷指令动作
### 2.1 获取短信内容
1. 搜索并添加"获取我的快捷指令"动作
2. 搜索并添加"文本"动作,用于获取短信内容
3. 在文本框中输入短信内容(这将在自动化中被替换)
### 2.2 发送 HTTP 请求
1. 搜索并添加"获取 URL 内容"动作
2. 配置如下:
- **URL**: `http://your-server-ip:8000/notify`
- **方法**: POST
- **请求体**: JSON
- **标头**:
- `Content-Type`: `application/json`
### 2.3 配置请求体
在"获取 URL 内容"动作的请求体中,输入以下 JSON 格式:
```json
{
"api_key": "your-secret-api-key-here",
"message": {
"sender": "发送者号码或名称",
"content": "短信内容",
"timestamp": "2024-01-01T12:00:00"
}
}
```
**注意**: 实际使用时,你需要:
-`your-secret-api-key-here` 替换为你的实际 API 密钥
- 使用快捷指令的变量来动态获取发送者和内容
## 步骤 3: 设置自动化
1. 在快捷指令应用中,点击底部的"自动化"
2. 点击右上角的"+"创建新自动化
3. 选择"收到信息时"
4. 配置触发条件:
- 选择"任何人"或特定联系人
- 选择"立即运行"
5. 选择你刚创建的快捷指令
## 步骤 4: 高级配置
### 动态获取短信信息
为了动态获取短信的发送者和内容,你需要在快捷指令中:
1. 使用"获取输入内容"动作获取短信
2. 使用"获取短信详细信息"动作提取发送者和内容
3. 在 HTTP 请求中使用这些变量
### 示例快捷指令流程
```
1. 获取输入内容 (短信)
2. 获取短信详细信息
- 发送者 → 变量: sender
- 内容 → 变量: content
3. 文本 (JSON 请求体)
{
"api_key": "your-api-key",
"message": {
"sender": "[sender变量]",
"content": "[content变量]",
"timestamp": "[当前日期]"
}
}
4. 获取 URL 内容
- URL: http://your-server:8000/notify
- 方法: POST
- 请求体: 上面的文本
```
## 步骤 5: 测试
1. 保存快捷指令和自动化
2. 让朋友给你发送一条测试短信
3. 检查你的 Android 设备是否收到通知
4. 查看服务器日志确认请求是否成功
## 故障排除
### 常见问题
1. **通知没有发送**
- 检查网络连接
- 确认服务器地址和端口正确
- 验证 API 密钥是否正确
2. **自动化没有触发**
- 确认自动化已启用
- 检查触发条件设置
- 重启快捷指令应用
3. **HTTP 请求失败**
- 检查 JSON 格式是否正确
- 确认 Content-Type 标头已设置
- 查看服务器日志获取详细错误信息
### 调试技巧
1. 在快捷指令中添加"显示通知"动作来调试
2. 使用"获取 URL 内容"的响应来检查服务器返回
3. 查看服务器的 `/health` 端点确认服务正常
## 安全建议
1. 使用强 API 密钥
2. 考虑使用 HTTPS需要 SSL 证书)
3. 限制服务器的访问 IP
4. 定期更换 API 密钥
## 进阶功能
### 过滤特定短信
你可以在快捷指令中添加条件判断,只转发特定的短信:
```
1. 获取短信内容
2. 如果 (内容包含"验证码"或发送者是"银行")
3. 执行 HTTP 请求
```
### 自定义通知格式
通过修改服务器配置文件中的模板,你可以自定义通知的显示格式。