# iPhone 有短信 API 吗？在 iOS 上获取短信

> 没有，iOS 没有让 App 读取你短信的公开 API。看看 Apple 允许什么，以及如何把 iPhone 短信以 JSON 格式送进你自己的代码。

最后更新：2026-10-23
规范 HTML 页面：https://www.fwrdsms.com/zh-hans/blog/iphone-sms-api
Published: 2026-10-16

没有，iPhone 没有公开的短信 API：iOS 不允许 App 读取你的短信，甚至不让它知道有短信到达。受支持的途径是你在 Apple “快捷指令”里一次性创建的“信息”自动化，它会把每条匹配的短信交给一个操作。Fwrd 就是面向开发者的这个操作：它把每条短信从 iPhone 以 JSON 格式发布到你自己的 HTTPS Webhook。

**你需要：** 一部运行 iOS 26 或更高版本的 iPhone、“快捷指令”App（手机里本来就有），以及一个接受 JSON POST 的 HTTPS 端点，例如你自己的服务器，或 Zapier、Make、n8n 的 Webhook。

## iOS 应用能读取短信吗？

不能。第三方 iOS 应用无法读取“信息”收件箱，短信到达时也不会收到通知。从 iPhone 里取出短信的每一种办法，都要经过用户有意设置的某样东西。

[Apple 开发者论坛 2017 年的一条回复](https://developer.apple.com/forums/thread/86268)说得很直白：App 不被允许看到短信，甚至不能知道短信已经到达。2025 年 10 月，一位 Apple 工程师[在论坛上表示](https://developer.apple.com/forums/thread/804040)，macOS 也没有读取用户短信的 API，所以登录了你 Apple 账户的 Mac 并不是后门。

## TelephonyMessagingKit 呢？

TelephonyMessagingKit 确实存在，但它只面向取代“信息”、成为默认运营商信息 App 的应用，而且仅限欧盟。它不是普通 App 读取你短信的方法。

[Apple 的文档](https://developer.apple.com/documentation/telephonymessagingkit)说这个框架处理 iPhone 上的 SMS、MMS 和 RCS，但 App 需要特殊的授权，只有在用户把它选为默认运营商信息 App 之后才能工作，而且用户需要有欧盟的账户、设备也要在欧盟。对于要把[短信送进脚本](https://www.fwrdsms.com/zh-hans/blog/sms-otp-codes-ci-automation-iphone)、数据库或 AI 代理的场景，它不是合适的工具。

## 那么 App 是怎么填入短信验证码的？

靠的是“自动填充”，而不是读取信息。iOS 会识别收到的短信里的一次性验证码，并在键盘上方提供它；只有用户轻点之后，App 才会收到这个验证码。

Apple 关于[在文本输入视图中启用“密码自动填充”](https://developer.apple.com/documentation/security/enabling-password-autofill-on-a-text-input-view)的指南，把“One-time code”列为一种内容类型，并说你可以为短信登录流程自动补全安全码。在 UIKit 中，这就是 `textContentType = .oneTimeCode`。要让你自己 App 的登录更顺畅，这样就够了。

## 如何把 iPhone 短信送进你自己的代码？

创建一个“快捷指令”“信息”自动化，并添加 Fwrd 的操作，它会把每条匹配的短信从 iPhone 以 JSON 格式发布到你的端点。Apple 的[“信息”触发条件](https://support.apple.com/guide/shortcuts/communication-triggers-apdd711f9dff/ios)会在收到你添加的发件人发来的信息，或含有你添加的短语的信息时运行。

下面的步骤使用 Fwrd 的 Webhook 目标：

1. **在 [Fwrd](https://apps.apple.com/app/apple-store/id6759069713?pt=128544281&ct=zhs-blog-sms-api&mt=8) 中添加 Webhook。** 打开 Fwrd，轻点 +，选取 Webhook。把你完整的 HTTPS 地址粘贴到“配置”栏，轻点“发送测试信息”让你的端点收到这些字段，然后保存。

2. **创建“信息”自动化。** 在 iOS 27 上，打开“快捷指令”，轻点“资料库”，再轻点“自动化”，然后轻点 +。如果看到“描述快捷指令”，请轻点“编辑”。轻点“自动化”，再轻点“信息”。在 iOS 26 上，打开“自动化”标签页，轻点 +，然后选取“信息”。

3. **选择发送哪些短信。** 选取“信息包含”（在 iOS 27 上，将“发件人”改为“信息”），然后键入你的短信里会出现的词，例如 code。或者键入一个空格，发送任何含空格的短信。

4. **让它不经询问直接运行。** 在 iOS 27 上，轻点触发条件旁边的箭头，检查“运行前确认”是否已关闭。在 ⓘ 下的“隐私”中，检查“锁定时允许运行”是否已打开。在 iOS 26 上，选取“立即运行”，然后轻点“下一步”和“创建新快捷指令”。

5. **添加 Fwrd 的操作。** 搜索“转发”，添加 Fwrd 的“转发信息到所有目标”。轻点它的“信息”栏，选取“输入快捷指令的信息”（在 iOS 26 上，依次选取“输入快捷指令的信息”和“信息”）。轻点返回以保存（在 iOS 26 上轻点“完成”）。

6. **这就完成了。** 含有你设定的词的新短信现在会自动到达你的端点，无论 iPhone 是否锁屏。

### JSON 是什么样子？

Fwrd 把每条短信作为 POST 发送到你的 Webhook，请求头为 `Content-Type: application/json`。默认情况下，正文把信息原样放了两次，因为 Mattermost 和 Rocket.Chat 读取的是 `text`：

```json
{
  "content": "Your code is 482913",
  "text": "Your code is 482913"
}
```

其中没有时间戳。如果你在 Fwrd 的“设置”中打开“附上发件人”，并在“快捷指令”里 Fwrd 的操作上选取“发件人”，正文还会多出一个 `sender` 字段。同一条短信的每次尝试都带有相同的 `Idempotency-Key` 请求头，所以你可以丢弃重复的请求。15 秒内返回任何 2xx 响应都算作已送达，重定向会被拒绝。[Webhook 指南](https://www.fwrdsms.com/zh-hans/guides/webhook)完整介绍了端点这一侧。

## 各种方案对比

| 方式 | 能读取收到的短信吗？ | 谁能使用 |
|---|---|---|
| 公开的短信 API | iOS 上不存在 | 没有人 |
| TelephonyMessagingKit | 能，作为默认信息 App | 运营商信息 App，仅限欧盟 |
| 密码自动填充 | 只能读到验证码，且要用户轻点 | 任何 App 的登录栏 |
| “快捷指令” + Fwrd | 能，读取符合你的自动化的短信 | 任何运行 iOS 26 或更高版本的人 |

Fwrd 替你处理这些繁琐的部分：

- **无需账户。** Fwrd 没有登录，也没有 Fwrd 服务器；每条短信直接从你的 iPhone 发送到你的 URL。
- **筛选条件。** 每个 Webhook 都可以只保留含有你指定词语的短信、看起来像验证码的短信，或在特定时段到达的短信。
- **重试和密钥都已处理。** 如果发送超时、遇到 429 或 5xx，或者连接中断，Fwrd 会再试，最多两次，并把你的 URL 保存在 iPhone 的钥匙串里，而不是存在“快捷指令”中。
- **八个目标。** 同一个操作还能覆盖电子邮件、另一部手机或 iMessage、WhatsApp、Discord、Slack、Microsoft Teams 和 Telegram。

## iPhone 不能充当短信网关的原因

iPhone 不能充当你服务器的短信网关。iOS 没有让服务器通过它发送短信的 API，所以 Fwrd 只负责接收：短信在 iPhone 上到达，再发送到你的端点。

- **从 API 发送。** 能通过 API 发送短信的网关 App 运行在安卓上；[textbee.dev](https://textbee.dev) 在它的常见问题中说，它目前只支持安卓设备（2026 年 10 月 16 日查看）。
- **必须有规则。** 自动化只处理含有你选定的词的短信，或来自你“联系人”里的人的短信。一个空格能匹配任何含空格的短信。
- **手机保持开机并联网。** 接收短信的 iPhone 在短信到达时必须开机，并有 Wi-Fi 或蜂窝数据。重新启动后，要等你解锁一次，转发才会继续。
- **只有文字。** 图片不会传过去，回复仍然要从 iPhone 本身发出。

## 常见问题

### 我能读取 iPhone 上已有的旧短信吗？

不能。“信息”自动化只对你设置之后到达的新短信运行。

### 它能和 Zapier、Make 或 n8n 一起用吗？

能。把 Zapier 的 catch hook、Make 的自定义 Webhook，或 n8n 的 Webhook 节点的 Production URL，粘贴到 Fwrd 的 Webhook 目标里，每条匹配的短信都会启动你的工作流。[把 iPhone 短信发送到 Zapier、Make 或 n8n](https://www.fwrdsms.com/zh-hans/iphone-sms-to-zapier-make-n8n)介绍了每一种的步骤。

### iMessage 也算吗？

算。“信息”自动化会对到达“信息”App 的信息运行，包括 iMessage 信息，所以匹配的 iMessage 信息会和 SMS 一样到达你的 Webhook。

### 要花多少钱？

Fwrd 每月有 15 条免费转发，同一条短信无论转发到几个地方，都只算一次。Fwrd Pro 可取消限制，在美国售价为每月 $4.99 或每年 $29.99。

## 继续阅读

- [把 iPhone 短信转发到 Webhook](https://www.fwrdsms.com/zh-hans/iphone-sms-to-webhook)
- [iPhone 快捷指令信息自动化（iOS 26 和 27）](https://www.fwrdsms.com/zh-hans/blog/iphone-shortcuts-message-automation)
