已实现功能 — 原生 JMAP 邮件 + 日历功能
Boogie是一款集成日历的原生邮件客户端,专为Stalwart等JMAP服务器构建。以下是完整的功能实现:
✉ 邮件功能
- 撰写、发送、回复、转发
- 全文搜索和排序
- 拖放式附件管理
- HTML邮件渲染 (WKWebView)
- 多账户支持(自动发现)
- 签名管理
- 离线变更队列
- 41 种语言——覆盖全球 63% 的人口
- 自动更新
- Siri快捷指令(9个App Intents)
📅 日历功能
- 日视图、周视图和月视图
- 支持完整CRUD的事件编辑器
- 与Stalwart进行JMAP Calendar同步
- JSCalendar格式 (RFC 8984)
- 集成在同一应用中
- 非CalDAV — 纯JMAP
⚙ 基础设施与架构
- Apple Development证书代码签名
- 零外部依赖
- 隐私优先 — 无遥测、无追踪
为什么选择 Boogie
自托管邮件的原生 Apple Mail 替代方案
对于运行 Stalwart 或其他 JMAP 服务器的用户,Boogie 是真正能使用您服务器协议的原生 macOS Apple Mail 替代方案。Apple Mail 通过 IMAP 和 SMTP 连接——无法访问 JMAP 日历、推送通知或批量同步。Boogie 原生连接到您的自托管 JMAP 服务器,无需变通方案、无需适配器、无需云中继。
什么是 JMAP?
JMAP(JSON Meta Application Protocol)是在 RFC 8620 中定义的开放互联网标准,通过用无状态的、基于 JSON 的 API 取代 IMAP 来实现电子邮件的现代化。单个 JMAP 请求可以批量处理多个操作——获取邮件、同步日历事件、推送实时通知——通过持久的 WebSocket 连接,使其比任何 IMAP 实现都更快、更高效。
JMAP 与 IMAP — 关键区别
- ♦协议设计:IMAP 是 1986 年的有状态、基于文本的协议。JMAP 是 2019 年标准化的无状态 JSON API(RFC 8620),能将多个邮件操作批量处理为单个 HTTP 请求。
- ♦日历支持:IMAP 只处理电子邮件;日历需要单独的 CalDAV 连接。JMAP 在同一协议中包含日历和联系人同步(RFC 8984),完全消除了对 CalDAV 的需求。
- ♦性能:IMAP 在单独的往返中获取消息元数据和正文。JMAP 在一个批量请求中获取所有需要的内容,在高延迟连接上大幅降低延迟。
- ♦推送通知:IMAP 依赖轮询或 IDLE——一种在移动设备上消耗电池的保活连接。JMAP 通过 WebSocket 提供实时更新,意味着新邮件无需轮询即可即时显示。
- ♦移动效率:IMAP 在移动设备出现之前设计,带宽消耗大。JMAP 的 JSON 批处理和增量同步仅传输已更改的状态,在蜂窝连接上效率显著更高。
JMAP 邮件客户端对比 — Boogie 与所有替代方案
我们调查了目前所有可用的JMAP邮件客户端。Boogie是唯一内置日历支持的原生macOS JMAP客户端。以下是各客户端的对比情况:
| 客户端 | 平台 | 原生 | JMAP Calendar | 状态 |
|---|---|---|---|---|
| Boogie | macOS · iOS · iPadOS · watchOS · Android beta | ✓ | ✓ | 已发布 |
| Fastmail App | All platforms | Electron | ✓ | 仅限 Fastmail (Electron) |
| Swift Mail | macOS | ✓ | ✗ | 仅限Fastmail |
| Mailtemi | iOS / Android | ✓ | ✗ | 日历功能计划中 |
| Parula | Win / Mac / Linux | Electron | WIP | 开发中 |
| Twake Mail | iOS / Android / Web | Flutter | ✗ | 仅邮件 |
| Ltt.rs | Android | ✓ | ✗ | 概念验证 |
| OpenCloud | Web | Web | WIP | 计划于2026年 |
Fastmail 的桌面应用是基于 Electron 对其网页客户端的封装,并非原生应用程序。他们的 JMAP Calendar API 仅供内部使用,未向第三方客户端开放。Boogie 是四大 Apple 平台上唯一真正原生的 JMAP 邮件 + 日历客户端。
路线图 — v1.x 至 v6.x 已在 4 个 Apple 平台发布,Android 处于测试阶段
| 阶段 | 内容 | 工作量 | 状态 |
|---|---|---|---|
| v1.x | 单账户邮件+日历、分发、代码签名 | — | ✓ 已完成 |
| v2.x | 多账户、Swift 6、HTML清理器、签名UX | — | ✓ 已完成 |
| v3.x | 智能同步、i18n、本地化 | — | ✓ 已完成 |
| v5.x | iOS 与 iPadOS 多平台捆绑包 | — | ✓ 已完成 |
| v6.x | 具备原生 JMAP 撰写功能的 watchOS 配套应用 | — | ✓ 已完成 |
| beta | Android(Kotlin / Jetpack Compose / Room / Hilt / Ktor) | — | 进行中 |
开放标准 — JMAP、自托管邮件、无厂商锁定
Boogie使用JMAP(JSON Meta Application Protocol)——这是驱动自托管和隐私优先邮件的现代JSON格式IMAP继任协议。没有专有协议,没有云端中间人。您的邮件服务器,您的数据,您的客户端。
专为以下服务器构建: Stalwart Mail Server——目前最完整的JMAP实现。Stalwart Mail Server支持邮件、日历、联系人和文件的JMAP,而Boogie是让这些自托管邮件功能变得易用且友好的原生桌面客户端。
JMAP协议支持包括Fastmail、Migadu、Cyrus及其他服务器。只要您的邮件服务器支持JMAP,Boogie就能连接。
您的数据留在您的服务器上
Boogie 不收集遥测数据,不发送分析数据,不通过任何云中介路由流量。您的电子邮件、日历事件和凭据存储在您的 Mac 本地或您自己的 JMAP 服务器上——永远不在我们的服务器上。应用通过本地 GRDB 数据库完全离线运行,仅在您选择连接时才与服务器同步。无需账户。不收集数据。没有例外。
全球语言支持 — 41 种语言,包括 RTL 和 CJK
Boogie 网站提供41种语言,应用内支持41种语言,包括RTL阿拉伯语、CJK脚本和天城文。在原生JMAP桌面客户端中,没有其他应用能达到如此深度的本地化。
| 客户端 | 网站 | 应用 | RTL | 备注 |
|---|---|---|---|---|
| Boogie | 41 | 41 | ✓ | 6种文字体系,约45亿使用者 |
| Twake Mail | 2 | 6* | ✗ | 仅6种达90%以上,48种中27种零翻译 |
| Ltt.rs | 1 | 13 | ✗ | 社区翻译,仅Android |
| Fastmail | 1 | 36 | ? | 仅Web界面,非独立应用 |
| Swift Mail | 1 | 1 | ✗ | 仅英语 |
| Parula | 1 | 1 | ✗ | 仅英语 |
| Mailtemi | 1 | 1–2 | ✗ | 仅英语 |
* Twake Mail在Weblate上列出48种语言,但实际翻译完成90%以上的仅6种,27种零翻译。
应用语言 (41)
English, Japanese, Simplified Chinese, Traditional Chinese, French, Spanish, Brazilian Portuguese, Italian, Romanian, Greek, German, Korean, Arabic (RTL), Hindi, Turkish, Dutch, Polish, Thai, Russian, Ukrainian, Vietnamese, Indonesian, Swedish, Afrikaans.
每种语言约~13,500个已翻译字符串。
网站语言 (41)
全部 41 种语言在应用和网站中均可使用。
网站本地化在用户下载前以其母语提供引导。
为什么语言支持很重要
常见问题
什么是 JMAP?
JMAP(JSON Meta Application Protocol)是一种在 RFC 8620 中定义的现代开放电子邮件标准,用于取代老旧的 IMAP 协议。它通过 HTTPS 使用高效的 JSON,支持通过 WebSocket 进行实时推送,并在单一统一的 API 中处理电子邮件、日历和联系人——使其比 IMAP 显著更快且更节省带宽。
什么是 Stalwart Mail Server?
Stalwart Mail Server 是一个用 Rust 编写的开源自托管邮件服务器,实现了目前最完整的 JMAP 规范,包括对邮件、日历、联系人和文件存储的支持。它专为注重隐私的个人和组织设计,使他们能够完全控制自己的电子邮件基础设施,而无需依赖第三方云服务提供商。
Boogie 能与 Fastmail 配合使用吗?
可以。Boogie 可连接任何实现 JMAP 标准的服务器,包括 Fastmail、Migadu 和 Cyrus——不仅限于 Stalwart。JMAP 会话发现自动处理,您只需提供服务器 URL 和凭据即可开始使用。
Boogie 与 Apple Mail 相比如何?
Apple Mail 使用 IMAP 和 SMTP——这些是 1980 年代和 1990 年代的协议。Boogie 专门使用 JMAP,为您提供通过 WebSocket 的实时推送通知、无需 CalDAV 的集成日历同步,以及为自托管服务器而非云服务提供商构建的架构。对于运行 Stalwart 或其他 JMAP 服务器的用户,Boogie 提供了 Apple Mail 无法提供的功能。
Boogie 支持哪些平台?
Boogie 以单一多平台 Swift 捆绑包的形式在 macOS、iOS、iPadOS 和 watchOS 上发布。watchOS 应用通过 JMAP 直接从腕上以原生方式撰写邮件,无需转交给手机。BoogieAndroid 现已达到与 iOS v6.0 的功能对等,拥有 8 项原生功能(TalkBack 无障碍、可配置的滑动操作、持久排序、邮件模板、HTML 签名、内嵌图片、送达回执、侧边栏邮箱树),并随附 363 个 Kotlin 测试(359 个单元测试 + 4 个插桩测试)。已签名的 Android 版本(.aab + .apk)已准备好上传至 Play Store Internal Testing;Production 正式发布将在 Apple 上线之后进行。
Boogie 支持离线邮件吗?
支持。Boogie 维护您电子邮件的本地 GRDB(SQLite)数据库,并在连接不可用时将外发更改——撰写、发送、删除、移动——排入队列。连接恢复后,更改会立即与您的 JMAP 服务器同步,为您提供可靠的离线体验,不会丢失数据。
Boogie 的系统要求是什么?
macOS 14 Sonoma 或更高版本,搭载 Apple Silicon(M1 或更新)。iOS 17 与 iPadOS 17 或更高版本。watchOS 11 或更高版本(推荐 Apple Watch Series 9 / Ultra 1 或更新)。BoogieAndroid 测试版需要 Android 13 或更高版本。所有 Apple 构建均已代码签名并完成公证;macOS 直接下载的 DMG 通过 Sparkle 自动更新。
为什么 Boogie 使用 JMAP 而不是 IMAP?
IMAP 于 1986 年为缓慢、间歇性的连接而设计,已积累了数十年的扩展和变通方案。JMAP 是一种无状态的、基于 JSON 的协议,能在单个请求中批量处理多个操作,通过 WebSocket 提供实时更新,并在一个 API 中同时处理日历和电子邮件。对于从头构建的原生 macOS 客户端,JMAP 是正确的基础——而非为现代用途改装的遗留协议。