更新摘要
- 新增 Telegram
私聊新邮件提醒,关闭网页后也可接收已索引邮箱来源的新邮件通知。
- OmniMail 主邮箱正文可选转发为纯文本或 Telegram
富文本,正文发送默认关闭。
- 修复 Linux DO
邮件打开后仍保持未读的问题:成功读取正文后尝试同步服务器已读状态,并更新列表。
新增
- Telegram 提醒覆盖 OmniMail、iCloud IMAP、Linux
DO、Gmail、Microsoft、QQ、NAVER 和 Yandex
八类已索引来源;可选择通知来源、内容级别、免打扰时段和时区,并暂停、解除连接或发送测试消息。
- 用户通过一次性私聊连接码配对;每个用户绑定一个私聊,连接码十分钟有效。默认消息仅包含
来源和站内链接,发件人与主题由用户主动开启。
- 主邮箱纯文本短正文直接随提醒发送,长正文作为
.txt
文件发送。富文本保留常用标题、段落、 强调、列表、表格和安全链接;HTML
缺失、过大、过于复杂或 Telegram 拒绝时回退纯文本。
- 独立通知 Queue 与死信队列支持临时错误和限流退避重试;屏蔽 Bot
的私聊会暂停通知。
改进
- Telegram
设置卡片按连接状态、来源、消息内容和免打扰分组,改善窄屏布局,并明确正文隐私提示。
- 已读、星标变化和重复同步不产生新提醒;外部邮箱首次索引或 UIDVALIDITY
重置不推送历史邮件。
免打扰期间的提醒直接跳过,不在结束后补发;外部邮箱到达速度仍取决于既有同步周期。
修复
- Linux DO 正文读取不再只读:未读邮件尝试写入
\Seen,仅在写入成功或服务器已读时更新列表;
拒绝、断连或超时不会阻断已获取的正文,也不会把失败的同步显示为成功,再次打开可重试。
列表读取和账号验证继续保持只读。
- 按 Telegram
InputRichMessage 协议将
skip_entity_detection 放入
rich_message,使关闭自动
链接、提及等识别的设置生效。协议依据见 Telegram Bot
API。
安全
- Telegram
正文发送默认关闭,开启后可能将验证码等邮件内容发送到第三方服务;只支持主邮箱
正文,外部邮箱正文和附件不转发。富文本不执行邮件脚本或
CSS,不自动加载远程图片。
- Webhook 校验独立
Secret,私聊连接码只保存哈希;站内链接不包含登录令牌。
- Linux DO UID 限制为规范的 32
位正整数,在访问存储和网络前拒绝控制字符、UID 序列和越界值。
升级说明
- 从 Web
1.1.4 升级前备份 D1 和现有
Secret,更新代码后依次运行 npm run build、
npm run deploy。部署脚本先应用
0038_telegram_notifications.sql、
0039_telegram_message_body.sql、0040_telegram_rich_body.sql,再发布
Worker 与前端。
- Wrangler 配置新增
NOTIFICATION_QUEUE,对应
omnimail-notifications 生产者和消费者, 使用
omnimail-notifications-dead
死信队列。沿用仓库配置和部署脚本会处理这些绑定;
使用自定义配置的实例需同步配置。原有收发信队列继续独立工作。
- Telegram 为可选功能。启用时配置两个 Worker
Secret:
TELEGRAM_BOT_TOKEN、
TELEGRAM_WEBHOOK_SECRET,由主管理员在 HTTPS
正式站点的账号设置中点击“验证并注册 Telegram
Bot”,用户再连接自己的私聊。不配置 Bot
时,原有收信、同步和发信继续工作。
- 更换站点域名后重新注册 Webhook;更换 Bot 后用户需重新配对。iCloud
Web 摘要不参与推送。 更多步骤见 Telegram
通知指南。
- 原有邮箱连接无需重新绑定。Linux DO
打开正文现在会尝试标记服务器已读;现有正文响应字段 保持兼容。Float
1.0.2 和 Android 0.3.0
继续使用独立版本号,本次不发布这两个客户端。
- 回滚旧 Worker 前先停止通知队列消费或移除其消费者绑定,保留新增 D1
表和字段,不删除 迁移记录;不要让旧邮件消费者处理通知任务。
测试
- 全量单元测试 823 项、Worker/D1 集成测试 52
项通过;富文本参数修正后,相关单元测试 12 项与 Telegram 集成测试 20
项再次通过。
- 浏览器端到端测试 94 项、类型检查、Lint、Web 构建、Wrangler dry-run
与版本元数据校验通过。
隔离本地数据库连续执行两次迁移成功,第二次没有待执行迁移。
- 覆盖八类来源新邮件筛选、配对和权限、内容隐私、正文转发、富文本回退、限流和
Bot 屏蔽; Linux DO
覆盖已读成功、拒绝、断连、超时、刷新后保留状态及再次打开重试。
- Telegram 自动化使用模拟服务;真实邮箱已读同步和真实 Telegram
投递仍需使用实际账号验收。
发布
- Web 版本为
1.2.0,通过 GitHub Tag v1.2.0
发布,不包含额外下载文件。
- Tag 必须位于
main;Web Release 工作流校验通过后生成
GitHub Release。