ChatGPT 手机端调用外部 API
在 ChatGPT 里让它按模板发一封邮件,MailRelay 收到后调用你配置好的 HTTP 接口,再把结果回信。
MailRelay 跑在你的机器上,收一封带 Token 的邮件,按配置调用 HTTP、Webhook、Workflow 或 Queue,然后把执行结果回信。很适合把 ChatGPT 手机端、快捷指令、NAS 脚本接到你自己的 API。
go install github.com/becomeopc/opc-mailrelay/cmd/mailrelay@latestSubject push From me@example.com Client ChatGPT iOS Token verified # parser message=hello # router push → http # request GET api.example.com/push/hello # audit saved to SQLite # response SMTP reply queued
What it does
认证、去重、审计、重试、outbox 和 dead letter 都在一条执行链路里。
Use cases
MailRelay 适合低频、异步、需要留痕的动作。每个客户端都可以沿用发邮件这条路。
在 ChatGPT 里让它按模板发一封邮件,MailRelay 收到后调用你配置好的 HTTP 接口,再把结果回信。
iOS 快捷指令、NAS、低代码工具只要能发邮件,就能触发一条受限命令。服务端不用额外开放入口。
备份、生成报告、同步数据这类任务可以进 Queue。失败会重试,耗尽后停在 dead letter,等你修好再 replay。
邮件正文可以是一段 HTTP/1.1 请求报文。MailRelay 校验发件人和 Token 后,按 allowlist 转发。
Email as input
很多环境不能直接调你的内网 API,但可以发邮件。MailRelay 把这封邮件变成受限命令。
手机 App、ChatGPT、脚本、NAS 和企业终端基本都能发邮件。
邮件天然是异步投递。客户端不需要一直在线等接口返回。
Subject 放命令名,Header 放 Token,正文放参数或 HTTP 请求。
执行结果通过回信送回去,SQLite 里保留去重、审计和失败记录。
Command catalog
Command 名称、参数、必填项与示例生成 Catalog、`help` 和 `help deploy`。
Catalog Hash 记录 Added、Removed 与 Updated。
Available Commands deploy 部署项目 backup 备份数据 summary 总结附件
deploy Description 部署项目 Parameters env* · version Example env=prod
The protocol
Receiver、Parser、Auth、Router、Handler 与 Reply 分层处理,失败可记录、可恢复。
Where it fits
适合声明式命令、固定目标和审计回放。需要交互式排障时,SSH 或专业平台还是更合适。
Runtime checks
每封邮件都要过同一套检查。
发件人、Token、Message-ID、出站网络、审计、重试和回放由运行时统一执行。
allowlist 校验发件人,Token 用常量时间比较。
Message-ID 会进入 SQLite claim,重复投递不会重复跑命令。
执行结果写入 outbox。SMTP 临时失败只重试投递。
目标主机来自配置,path/query 可以映射参数,DNS、IP 和重定向都会检查。
队列任务和回复投递耗尽重试后停在 dead letter,需要人工 replay。
密码、Token、完整正文和 sensitive 参数不会写进 SQLite 审计记录。
Handlers
常用的 HTTP、HTTP Request、Webhook、Queue 和 Workflow 已经稳定;本地进程、Agent 与 MCP 仍标为实验能力。
调用配置好的接口,或者转发邮件里的 HTTP 请求。
把多条命令串起来,或者把任务放到 SQLite 队列里慢慢跑。
运行固定路径的本地程序,输入输出受限,不经过 shell 拼接。
端点、模型、提示词和 Tool allowlist 都写在配置里。