原生打造,从容扩展。安全,深植核心。
FOLD 是一款原生电子邮件客户端,为认真对待收件箱的人而打造:工程师、研究人员、记者、系统管理员。自研 IMAP 引擎,内置 S/MIME 和 OpenPGP,没有遥测。安全是设计的约束条件,而不是最后的润色。
折角标记:该说法附有来源,标注在单元格底部。 全部来源
目前已可用
TestFlight · macOS 和 iOS · 截至 2026-09- 所有账户,一个收件箱统一收件箱
- 增量同步与推送CONDSTORE QRESYNC IDLE
- 可撤销的发送0 至 30 s 发件箱
- 加密邮件S/MIME OpenPGP
- 在设备上验证发件人DKIM DMARC BIMI
- Fortress 模式按账户 Argon2id
- 四种界面语言英语 德语 日语 阿拉伯语
- 规则作用于每封新邮件以搜索语法编写过滤条件
50 万封邮件。实测计时。
存储引擎的基准测试,基于一个包含 50 万封邮件的合成邮箱。
- 58 ms
- 在 50 万封邮件中全文搜索
- 0.7 ms
- 从 SQLite 读取 50 封邮件的邮件头
- 9 ms
- 打开存储,获得首个索引快照
- 67 s
- 导入 50 万封邮件
FoldBench,Release 构建,Apple M1 Ultra,macOS 27,五次运行取中位数。以上均为存储引擎的计时。App 冷启动、帧时间和内存占用在下方列为预算,目前尚未测量。
邮件是工具, 不是广告渠道。
许多邮件客户端让你的邮件途经厂商的云端,把半个互联网拉进来当作依赖,还把满屏横幅称作生产力。FOLD 反其道而行:更少的代码,更小的攻击面,更少的假设。
按需呈现
回复时先只显示“收件人”栏。抄送和密送在你需要时才出现。屏幕上的每样东西,都要配得上它的位置。
键盘优先
在 Mac 上,⌘K 可直达撰写、回复、移动,以及每个文件夹和每个账户。搜索支持 from:、is:unread、before:6m 和 /regex/ 等运算符。
来源,由你查验
FOLD 在你的设备上验证 DKIM 签名,并按 DMARC 与发件人对齐。你看到的是邮件是否真的来自它所声称的域名,而不是服务器对它的说法。
RFC 6376 8463 7489
始终可搜索的归档
跨所有账户离线搜索,按主题、发件人和收件人查找。对话依据 Message-ID 和 References 归并,跨账户、跨年份依然完整。
JWZ 对话归并 SQLite FTS5
FOLD 的界面布局。
四幅示意视图,依据当前运行的构建版本绘制。正式截图将随发布提供。
三栏布局
邮箱、邮件列表、邮件详情。在 Mac 上为键盘和触控板而设计;在 iPad 上,借助系统的分栏视图呈现同样的三栏。
命令面板
用 ⌘K 撰写、回复、移动、切换账户,或跳转到任意文件夹。from:、is:unread 和 /regex/ 等搜索运算符可直接在输入框中使用。
邮件头与安全检查器
原始邮件头,以及每个 DKIM 签名的域名、选择器和算法。在 Mac 上,活动窗口会显示同步步骤和 SMTP 会话记录,仅保存在内存中。
对话视图
依据 References 和 In-Reply-To,用 JWZ 算法构建对话,跨账户按 Message-ID 去重,以层叠的历史记录阅读。在设置中用一个开关即可启用。
一套语法,处处通用。
搜索框、命令面板、过滤规则和命令行共用同一个解析器。一条规则,就是一次已存储的搜索加上一个操作。
from:[email protected] is:unread after:2026-01-01 -is:flagged
subject:"deploy failed" /timeout|5\d\d/
size:>10M before:6m is:unread$ foldmail search 'from:[email protected] is:unread' --quiet \
| xargs foldmail flag --add '\Seen'
$ echo $?
0想找什么,直接写出来
from:、to:、cc:、subject:、is:unread、is:flagged、label:、size:>10M,以及可配合日期或 30d、6m、1y 使用的 before: 和 after:。支持 AND、OR、括号、引号括起的短语,还可以用减号排除某种状态,例如 -is:read。也支持德语运算符:von:、betreff:、ist:ungelesen。
覆盖所有账户
SQLite FTS5 索引主题、发件人和收件人,可离线同时搜索所有账户。/regex/ 可按主题和发件人进一步筛选结果。邮件正文尚未纳入本地索引;在 iPhone 和 iPad 上,FOLD 还可以向服务器发起搜索。
过滤规则,同一套语法
标记为已读或未读、加旗标、移到文件夹。规则会在 Mac 和 iPhone 上作用于每封新邮件;应用之前,预览会显示一组规则将涉及哪些邮件。转发和自动回复尚未启用。
foldmail
Git 风格的子命令:search、read、flag、delete、compose、outbox、filter。--json 供程序读取,--quiet 只输出 ID,退出码为 0 至 4。目前在内部构建中运行,尚未随 App 一起提供。
通过 App Intents 支持快捷指令、Siri 和聚焦搜索,以及交互式小组件。它们所依赖的共享操作层已经就绪。
自研引擎,Swift 编写。
IMAP 和 SMTP 用 Swift 编写,基于 Apple 的 Foundation 流。中间没有 C 邮件库,没有桥接层,也没有 SDK。
输入地址即可
FOLD 同时查询四个来源:自身缓存、11 个内置服务商配置、DNS SRV 记录,以及你的域名自己的 autoconfig 文件。FOLD 不查询 Mozilla 的中央数据库,因此你的域名只在你和你的服务商之间。在你添加账户之前,不会连接任何邮件服务器。
在关键处使用 OAuth
Google 通过 OAuth 2 与 PKCE 在系统浏览器中登录:App 中不含客户端密钥,令牌会自动续期。Microsoft 登录已做好准备,正在等待其客户端注册;在此之前,可使用 App 专用密码。
别名,回复无误
支持多个账户,每个账户可有多个别名,各自拥有自己的名称和签名。回复会从原邮件所发往的地址发出。
只同步变化
首次同步后,FOLD 会记住服务器的 HIGHESTMODSEQ,此后只获取新邮件、变更的标记和删除操作。不支持该扩展的服务器则进行干净的完整同步。
RFC 7162 CONDSTORE QRESYNC
通过 IDLE 实时推送
新邮件由服务器主动通知;FOLD 每 25 分钟续订一次会话。不支持 IDLE 的服务器则采用轮询。
RFC 2177
为规模而设计
每个连接和每个存储层都是独立的 Swift actor。一个同步引擎服务所有账户,每个账户四个连接,其中一个始终留给你当前的操作。
现已在 TestFlight 中运行。
首个公开版本即将推出:Mac 版将以经过签名和公证的直接下载形式在本网站提供。
五层防护。没有一层孤立存在。
每一层都有各自的职责和各自的测试。一层失守,下一层依然坚守。
- 安全在先,而非最后。
- 可审计性优于便利性。
- 纵深防御。
- 最小攻击面。
- L1
TLS
严格校验证书和主机名,不可绕过。强制使用 STARTTLS:如果升级失败,或在升级前就收到数据,连接会被断开。拒绝未加密的 IMAP 和 SMTP。
- L2
认证
在服务商支持的情况下使用 OAuth 2 与 PKCE。在 SMTP 上,SCRAM-SHA-256 优先于 CRAM-MD5 和 PLAIN,且 PLAIN 绝不在 TLS 之外使用。
- L3
沙盒
App Sandbox 与 Hardened Runtime。授权项:出站网络、你选择的文件、一个钥匙串组,以及用于可选同步的 iCloud 容器。不绕过库验证。
- L4
钥匙串
密码和令牌保存在钥匙串中,与这台设备绑定,仅在设备解锁时可用。默认不同步任何内容;通过 iCloud 钥匙串同步密码需要单独选择启用。
- L5
渲染
HTML 邮件中的 JavaScript 处于关闭状态。远程内容需经你允许才会加载,点击链接时会先显示其真实目标,存储的附件带有隔离标记。MIME 解析器对嵌套深度、部件数量和邮件头大小设有硬性上限。
Fortress 模式
在 FileVault 之上再加一层加密。Argon2id(64 MiB,3 轮)把你的密码短语转换为一把只存在于内存中的 256 位密钥。每个账户获得各自的 HKDF 子密钥,AES-256-GCM 加密封存邮件头数据库和邮件缓存。闲置一段时间后,保险库会锁定,密钥随即被清除。
经过检验,而非空口声称:S/MIME 和 OpenPGP 可与真实的 GnuPG 和 OpenSSL 互操作,DKIM 与 RFC 8463 测试向量逐字节一致,回归测试套件会重放历史上的邮件客户端 CVE,五个模糊测试目标为各解析器加固。
S/MIME 和 OpenPGP。两者均已内置。
在 Mac 和 iPhone 上签名、加密和解密,并已对照真实的 GnuPG 和 OpenSSL 检验。
证书:收集并校验
导入你的 .p12 身份和收件人证书,或让 FOLD 从已签名的邮件中收集。如果一个有效签名的证书与发件人不符,该签名会被标记为不受信任。以上功能在 iPhone 上同样可用;不过在 iPhone 上,收件人证书来自已签名的邮件,手动导入随后推出。
现代核心,旧算法受控
Ed25519 签名、Curve25519 加密密钥和 AES-256,始终带有完整性校验,以防范 EFAIL。你的通信对象的 RSA 密钥仍可继续使用。CAST5、IDEA、Blowfish、3DES、MD5 和 SHA-1 签名一律拒绝。
生成或导入
在 FOLD 中创建 Ed25519 和 Curve25519 密钥,或导入你的 GnuPG 密钥环。私钥受密码短语保护,存放在与本设备绑定的钥匙串保险库中。
边输入,边可见
输入时,收件人标签即会显示谁能接收加密邮件。签名和加密只是两个开关,仅此而已。
在你的设备上验证。
FOLD 自行重新计算 DKIM:正文哈希、DNS 密钥、规范化、签名。服务器给出的 Authentication-Results 邮件头不会被直接采信。
在你的设备上计算
Ed25519 逐字节对照 RFC 8463 参考向量,RSA 对照一封用 openssl 签名的测试邮件。短于 1024 位的密钥会被拒绝。DNS 查询在邮件正文加载时进行。
与发件人对齐
FOLD 将自己的 DKIM 结果和服务器邮件头中的 SPF 结果,与可见的发件人地址进行对齐。只有经过这种对齐,签名才成为证明。
RFC 7489
一切正常,便不打扰
一切验证通过时,你什么也不会看到。出现缺失或疑似伪造时,会以低调的方式标出,检查器会列出每个签名的域名、选择器和算法。对邮件列表的提示会有所减弱,好让提示保有分量。
品牌标志,经过验证
只有当 DMARC 在强制策略下通过,且标志证书能追溯到某个内置的 BIMI 根证书时,发件人的标志才会显示。标志取自证书本身,并在绘制前经过净化处理。
BIMI VMC 内置根证书
Apple 框架。Swift 6。自研引擎。
一款原生 App,建立在操作系统本身已提供的能力之上。没有跨平台层,也没有伪装成 App 的网页视图。
技术栈
- 语言
- Swift 6 语言模式,严格并发检查,ExistentialAny。
- 界面
- SwiftUI 优先。仅在 SwiftUI 力有不逮之处使用 AppKit 和 UIKit。
- 网络
- 基于 Foundation 流的自研 IMAP 和 SMTP 引擎,在已建立的连接上执行 STARTTLS。不使用 C 库。
- 存储
- SQLite,不使用 ORM:邮件头存储(WAL)、按内容寻址的邮件缓存、全文索引(FTS5)。
- 密码学
- CryptoKit、Security 和 CommonCrypto。Apple 未提供的原语由 FOLD 自行实现,并对照参考向量检验:Argon2id、BLAKE2b、AES-OCB。
- 并发
- 55 个 Swift actor。每个连接和每个存储层都相互隔离。
- 依赖
- 引擎和界面:仅使用 Apple 系统框架。直接下载版的更新程序(Sparkle)只存在于 App 外壳中。
性能预算
设计目标- 冷启动
- ≤ 300 ms
- 从点按到列表首行可见
- 滚动帧时间
- ≤ 8 ms
- 硬性上限 16 ms,在 50 万封邮件时同样适用
- 搜索
- ≤ 50 / 200 ms
- 邮件头 / 全文
- 内存
- 80 / 150 / 250 MB
- iPhone / iPad / Mac 工作集
设计目标取自性能规范。目前已实测的数据见上文。
每封邮件的正文都以其哈希寻址
邮件缓存以 SHA-256 作为每份正文的存储地址。相同内容在磁盘上只存一份;正文一旦在事后被改动,加载时就会立即校验失败。此外,FOLD 会检查每封获取到的邮件的大小和 MIME 结构是否完整,遇到不完整的邮件会提示重新载入,而不会把它当作完整邮件呈现。
SHA-256 每次加载时校验
FOLD 实现了哪些 RFC,哪些尚未实现
衡量邮件客户端所依据的每一项标准,附上它在代码中的状态,以及每处缺口的原因。
全部标准- 已实现
- 58
- 部分实现
- 8
- 尚未实现
- 10
- 有意不实现
- 6
问题简短,回答也简短。
我可以试用 FOLD 吗?
很快就可以。Mac 版的首个公开版本即将以经过签名的直接下载形式发布;iPhone 和 iPad 版随后通过 App Store 提供。你可以在下载页面留下邮箱地址,版本发布时我们会通知你一次。
支持哪些平台?
macOS 13 Ventura 及更高版本,iOS 和 iPadOS 18 及更高版本。两个 App 共用同一个引擎,目前都在 TestFlight 中运行。Mac 版在少数功能上领先:拖放、智能文件夹编辑器、VIP 发件人和配额显示。
FOLD 支持哪些语言?
界面提供英语、德语、日语和阿拉伯语版本,适用于 Mac、iPhone 和 iPad。在 iPhone 和 iPad 上,你可以在 App 内选择语言,不受系统语言影响。
为什么不用第三方库?
因为每一个依赖都是攻击面。CryptoKit、Security、SQLite 和 Foundation 已涵盖引擎所需的一切。只要能读懂 Swift,就能读懂全部代码,也没有人需要信任别人的构建产物。唯一的例外是直接下载版的更新程序。
OpenPGP 和 S/MIME 的情况如何?
S/MIME 支持 .p12 身份和收件人证书,使用 RSA 和 AES;S/MIME 4.0 所规定的 AES-GCM 尚不支持。OpenPGP 采用 Ed25519 签名、Curve25519 加密和带完整性校验的 AES-256,并为现有密钥保留 RSA,已对照真实的 gpg 检验;第 6 版密钥尚不支持。存在缺陷的路径在设计上即被排除:MD5、SHA-1 签名、CAST5、IDEA、3DES,以及任何没有完整性校验的内容。
FOLD 是开源的吗?
不是。代码为专有代码,由 Datargo GmbH 发布。它靠测试而非信任来证明自己:超过 3,000 项自动化测试,与 Dovecot、gpg 和 openssl 的互操作性检验,以及 2026 年 6 月的一次内部对抗性审计(65 项发现,无一严重,均已纳入跟踪)。公开发布前已安排一次外部渗透测试。
FOLD 将如何定价?
定价尚未最终确定。但有两点已经确定:安全功能永远不会成为付费附加项,也不会采用广告模式。
我的数据会怎样?
数据保留在你的设备上。FOLD 会与以下对象通信:你的邮件服务器;DNS;设置账户时你的域名的 autoconfig 文件;用于 OAuth 登录的 Google;以及在 DMARC 通过后,为获取 BIMI 标志而访问发件人的证书主机。iCloud 同步需要你主动选择启用。没有遥测,没有崩溃报告程序。
邮件,认真以待。
在 Mac、iPhone 和 iPad 上。
Mac 版 FOLD 以经过签名和公证的直接下载形式在本网站提供。iPhone 和 iPad 版目前在 TestFlight 中运行,将通过 App Store 发布。
前往下载