Mailrise + Server酱:老设备邮件告警统一转微信推送

效果:NAS、路由器、UPS 等只支持 SMTP 邮件告警的设备,通过 Mailrise 网关统一转发到微信。

前置条件

  • Server酱 SendKey(30 秒获取教程)。注意:schan:// 协议仅支持 SCT 开头的 SendKey,不支持 sctp 开头的版本。
  • 已部署 Mailrise(GitHub: YoRyan/mailrise)SMTP 网关服务。Mailrise 本质是一台对内 SMTP 服务器,收到邮件后按 Apprise URL 转发到目标通知服务。

配置步骤

1. 命令行验证连通性

先确认 SendKey 与 schan:// 协议能正常工作,再配置 Mailrise:

pip install apprise
apprise -t "测试标题" -b "测试正文" "schan://你的SENDKEY"

收到微信推送说明连通正常。schan:// 是 Apprise 中 Server酱 的专用协议,会将标题和正文通过 Server酱 API 推送到微信。

2. 编辑 mailrise.conf

在 Mailrise 的配置文件 mailrise.conf 中,将收件邮箱地址映射到 Server酱 的 Apprise URL:

收件邮箱地址 → schan://你的SENDKEY

设备发送告警邮件到该地址,Mailrise 收到后通过 schan:// 协议将邮件标题和正文推送到 Server酱。配置文件的具体字段名以 Mailrise 官方文档为准。

3. 设备侧 SMTP 指向 Mailrise

将 NAS、路由器、UPS 等设备的告警邮件 SMTP 服务器地址改为 Mailrise 的监听地址,收件人填写上一步映射的邮箱地址。设备发出的邮件经 Mailrise 解析后自动转为微信推送,完成 smtp 转 微信通知 的闭环。多台设备可映射到不同邮箱地址,统一走一个 Mailrise 网关。

如需推送到企业微信、钉钉或飞书群,参见通道配置

常见问题

每天免费额度是多少?

免费额度为每天 5 条。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。

消息没收到怎么办?

先检查 schan:// 后的 SendKey 是否为 SCT 开头(sctp 开头不支持);再用命令行 apprise -vv 验证连通性。更多排查步骤见常见问题与排查

有频率限制吗?

每分钟上限 50 条,会员每日 API 请求上限 1000 次。多台设备共用同一个 SendKey 的额度,高频告警场景注意控制发送间隔。

sctp 开头的 SendKey 能用吗?

不能。schan:// 协议仅支持 SCT 开头的 SendKey。如需使用 sctp 开头的 SendKey,请改用直接调用 Server酱 API 的方式。

相关集成

懒人方案:把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手,它就会替你完成 Server酱 的接入:

请帮我把 Server酱 微信通知接入到我当前的项目/工具中:
1. API:POST https://sctapi.ftqq.com/{SendKey}.send,参数 title(必填,不能含换行)、desp(正文,支持 Markdown,可选);成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头,则改用 https://{uid}.push.ft07.com/send/{SendKey}.send,uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取;如果没有,提醒我到 https://sct.ftqq.com 免费获取(每天 5 条额度)。
4. 安全要求:不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定:任务结束发 1 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。