跳转到内容

通知渠道

为提醒添加邮件、机器人或 Webhook 渠道;先完成本页设置,才能收到自动通知。

同一份提醒会发到所有开着的渠道。在「设置 → 通知渠道」里点「添加渠道」,选类型,填好字段后保存。每个渠道有自己的名称和「启用」开关,旁边的「测试」按钮只往这一个渠道发测试消息,没保存的配置也能先测。

渠道的地址、令牌存储在服务端,并提供给已登录的应用,公开页不下发;完整备份里会包含它们。

还没配过任何渠道、但旧版设置里填过「通知邮箱」的账本,会把那个邮箱当作唯一的邮件渠道。

  1. 在「设置 → 通知渠道」点「添加渠道」。
  2. 选类型,填写下表对应字段,点「测试」。测试会真实发送一条消息。
  3. 测试成功后保存,并确保渠道已启用。
字段 说明
收件邮箱 发到哪个地址。

邮件经 Cloudflare Email Sending 发出,需要部署时配置 EMAIL 绑定和 MAIL_FROM 发件地址,发件域名要在 Cloudflare 验证过。服务器没有配置时,发送会报错「这台服务器没有配置邮件发送」,请改用其他渠道。配置方法见 Cloudflare Workers + D1。

Docker 部署不能发邮件。

字段 说明
Bot Token 找 @BotFather 建一个机器人,拿到形如 123456:ABC… 的 Token。
Chat ID 你的用户 ID 或群 ID。先给机器人发一条消息,再用 @userinfobot 查自己的 ID。

消息使用 Telegram 的 HTML 格式,最长 4000 字符。

字段 说明
Webhook 地址 群设置 → 群机器人 → 添加自定义机器人,复制 https://open.feishu.cn/open-apis/bot/v2/hook/… 地址。
签名密钥 可选。机器人开启了「签名校验」时填。

以消息卡片发送,底部有一个打开应用的按钮。

字段 说明
Webhook 地址 群设置 → 机器人 → 自定义机器人,复制 https://oapi.dingtalk.com/robot/send?access_token=… 地址。
加签密钥 可选。机器人安全设置选了「加签」时填,以 SEC 开头。

如果机器人的安全设置用的是「自定义关键词」,请把关键词设成提醒里一定会出现的词,比如「订阅」。

字段 说明
Webhook 地址 群聊 → 添加群机器人,复制 https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=… 地址。

以 Markdown 消息发送,最长 4000 字符。

字段 说明
Device Key 在 iPhone 上安装 Bark,从 App 里复制 Key。
服务器 可选,自建 Bark 服务器的地址,缺省为 https://api.day.app。
字段 说明
Topic 起一个不容易被猜到的名字,手机上的 ntfy App 订阅同一个 Topic。
服务器 可选,缺省为 https://ntfy.sh。
访问令牌 可选。自建或受保护的服务器需要时填,以 Authorization: Bearer 发送。
字段 说明
SendKey Server酱 Turbo 的 SCT…,或 Server酱³ 的 sctp…。Calends 会按前缀自动选对应的接口。

推送到微信。

字段 说明
Webhook 地址 频道设置 → 整合 → Webhook,复制 https://discord.com/api/webhooks/… 地址。

以 Embed 消息发送。

字段 说明
Webhook 地址 在 Slack App 里开启 Incoming Webhooks,复制 https://hooks.slack.com/services/… 地址。
字段 说明
URL 接收提醒的地址。
附加请求头 可选,只支持一个请求头,写成 名称: 值,比如 Authorization: Bearer …。

Calends 以 POST 发送 JSON:

{
"subject": "订阅提醒|……",
"intro": "当前每月订阅支出 ……,N 项正在计费。",
"kind": "daily",
"sections": [
{ "heading": "即将扣款", "rows": [{ "title": "……", "amount": "……", "sub": "……" }] }
],
"text": "纯文本版本",
"markdown": "Markdown 版本",
"url": "https://calends.example.com"
}

kind 是 daily(每日提醒)、monthly(月度账单预告)或 test(测试)。text 和 markdown 是排好版的全文,可以直接转发到其他服务;sections 是结构化数据,方便自己排版。

  • 点渠道旁的「测试」,失败时会显示服务端返回的错误。
  • 多数机器人接口出错时也返回 HTTP 200,Calends 会检查返回体里的错误码(比如钉钉、企业微信的 errcode,飞书、Server酱的 code,Telegram 的 ok),把错误原因显示出来。
  • 必填字段没填时,会提示「某某渠道缺少某字段」。