跳到正文

阅读邮件 ​

本页说明一封邮件打开之后 Swanmail 做了什么:正文如何显示、拦截了什么,以及属于单封邮件或会话的操作。

会话 ​

回复会按 References / In-Reply-To 头聚合为会话。打开会话时展开最新一封,更早的邮件折叠在上方;点击 上方还有 N 封邮件 展开它们,或点击某个折叠行单独展开。每封展开的邮件都有自己的 回复 / 全部回复 / 转发 一行,以及一个 … 菜单,包含 查看纯文本、查看原始邮件头、查看源代码 和 另存为 .eml。

全部标为已读 ​

邮件列表顶部带勾的信封按钮,会把列表里显示的邮件全部标为已读:选中某个文件夹时是这个文件夹;在 所有收件箱 和 未读邮件 中,是每个账户的收件箱。其他文件夹里的邮件不受影响。侧边栏文件夹的右键菜单和命令面板里也有这一项。星标邮件 视图和搜索结果中不提供。

远程图片 ​

远程图片默认被拦截。被拦截的邮件会显示横幅,提供 显示远程图片(仅本封)、始终允许此发件人 和 始终允许此域名;后两条规则按账户保存。拦截由邮件框架的 Content-Security-Policy 强制执行,因此覆盖邮件能用来加载图片的所有途径——<img>、srcset 候选、CSS 背景图和网络字体——而不只是被移除的 <img src>。被拦截的图片显示为虚线小标签里的替代文字(alt),没有替代文字的就不显示,所以不占空间,也不会留下一块能点的空白。

允许图片时,应用后端会预取图片并以 data URL 交给邮件,这样发件方看不到你每次打开时的 IP 变化,邮件也不必等待慢速图床。预取器拒绝回环、链路本地和内网地址,逐跳检查重定向,一批图片最多等待 2.5 秒;没取到的由邮件框架自行加载。

菜单栏 ​

菜单栏中的 Swanmail 图标旁会显示未读数。点击它会弹出菜单:所有收件箱、按侧边栏顺序排列的各账户收件箱、写邮件、设置… 和 退出 Swanmail,选择后都会把窗口带到前台。在 Windows 上,图标位于通知区域:单击打开窗口,右键打开菜单。图标上的橙色小点表示有未读邮件;未读数显示在它的提示文字和任务栏按钮上。在 Linux 上,图标位于桌面的状态区域(桌面提供状态区域时)。

深色模式 ​

使用深色主题时,HTML 邮件会被重新着色以配合主题,而不是显示成一张白纸。邮件声明的每种颜色按用途改写:浅色背景和边框变深,深色文字变浅,本来就在深色一侧的颜色保持不变。亮度在 OKLab 中翻转,色相保留,所以黄色提示框仍是黄色,蓝色链接仍是蓝色。图片不会被重新着色;唯一的例外是大部分透明、内容偏暗的图片(通常是 logo),它会被反色,以免在深色背景上消失。

自带深色设计的邮件会被尊重,做法与 Apple Mail 相同:发件方为 prefers-color-scheme: dark 写的规则给邮件铺上了深色背景时,只启用这些规则,邮件的其他部分不再重新着色。只换 logo 或改一个按钮样式的规则同样会启用,但邮件其余部分照常适配。文字大多已经位于深色背景上的邮件保持原样。

之后,仍然难以看清的文字会被修正。发件方自己的深色设计可能保留了一个浅色框,框里的链接会用上深色主题的浅色链接色。任何与背后背景对比度低于 3:1 的文字或链接,都会换成适合该背景的颜色。与背景颜色完全相同的文字是故意隐藏的,保持隐藏。

设置 → 常规 → 阅读 → 深色模式下的邮件 可在 适配(默认)和 原始 之间选择,后者按邮件自身的浅色显示。邮件 … 菜单中的 显示原始颜色 / 适配深色模式 可单独切换一个会话,直到应用重启。

发件人验证 ​

在发件人旁边,Swanmail 会显示你自己的邮件服务器对这封邮件真实来源的判断:DMARC 通过(或 SPF 与 DKIM 对 From 行里的域名都通过)时显示 发件人已验证,只满足一部分时显示 发件人部分验证,DMARC 失败或没有任何通过的结果与 From 域名匹配时显示 发件人未通过验证。点击徽标可查看 SPF、DKIM、DMARC 的结果及其对应的域名。DMARC 失败的邮件还会在正文上方多出一行提示。

只有你的收件服务器添加的结果才可信。发件方可以往邮件里塞一条伪造的 Authentication-Results 头,所以 Swanmail 只读取最上方、位于第一个来自外部的跳转之上的那几条,其余一律忽略。如果你的服务器没有添加任何结果,就不显示徽标——没有结果不等于有结论。

链接 ​

所有链接都在系统浏览器中打开。当链接的可见文字看起来是一个地址、实际却指向另一个主机,或目标是 punycode(xn--)或混合文字的域名时,Swanmail 会标记该链接,并在正文上方显示 “有 N 个链接的实际地址与显示的不一致”。把鼠标悬停在被标记的链接上可查看真实地址。只有以真实顶级域名结尾的文字才算地址,所以版本号和 README.md、src/app.cs 这类文件名不会被比较。

日历邀请 ​

带有 text/calendar 部分或 .ics 附件的邮件会在正文上方显示 会议邀请 卡片,包含标题、时间(换算为你的时区,并写明重复规则)、地点、组织者和参与者。

  • 接受 / 待定 / 拒绝 会通过邮件向组织者发送标准的 iCalendar 回复,并在卡片上记住你的答复。之后可以更改,组织者会收到新的答复。
  • 在日历中打开 把 .ics 文件交给操作系统的日历应用。

Swanmail 自身不维护日历。没有写明组织者的邀请无法在卡片上答复。

退订 ​

带有 List-Unsubscribe 头的邮件列表邮件会在主题下方显示 退订 按钮。确认之后:

  • 支持一键退订(RFC 8058)的发件方会直接收到 Swanmail 通过 HTTPS 发出的请求;内网地址会被拒绝。
  • mailto: 形式的退订会打开预填好的写信窗口,你可以查看后自己发送。
  • 普通链接会在浏览器中打开发件方的退订页面。

拦截发件人 ​

邮件 … 菜单或命令面板里的 拦截发件人 会把这封邮件移入垃圾邮件,并让该地址今后发来的所有邮件直接进入垃圾邮件。匹配的是完整的邮箱地址。已拦截的发件人列在 设置 → 规则 的顶部,点 取消拦截 即可解除;被拦截发件人的邮件菜单里也会出现 取消拦截发件人。拦截先于你自己的规则执行。

快速回复 ​

在邮件或会话的底部,回复 … 会展开一个小编辑器:写好后按 ⌘↩(Ctrl+↩),回复的发出方式与点“回复”按钮完全一样——同样的引用原文、同样的发件地址、同样的 5 秒撤销。有其他收件人时会出现 回复全部;需要格式或附件时,在写信窗口中打开 会把已写的内容带到完整的写信窗口。除非打开写信窗口,否则不会保存到草稿。

已读回执 ​

如果发件人请求了已读回执,横幅会提供 发送回执 和 不发送。Swanmail 绝不会自动发送,并会记住你对该邮件的选择。

源代码与原始邮件头 ​

查看原始邮件头 显示收到时的头部块。查看源代码 显示完整的 RFC 822 邮件,另存为 .eml 把它写成其他邮件程序可以打开的文件。在会话中这些入口位于每封邮件自己的 … 菜单;单封邮件则在工具栏的 … 菜单里。查看源代码不会把邮件标记为已读。

早期版本下载的邮件在保存时没有包含头部块。当这类邮件第一次需要头部时——退订按钮、S/MIME 检查或这个对话框——Swanmail 会只从服务器取回头部并保存下来。

签名与加密邮件 ​

参见 GPG 加密 和 S/MIME。