参考文档

用户手册

每个操作、每项设置和每个菜单项的完整参考。

安装

首次启动时,Sortail 会带你走一遍简短的引导流程,按步骤申请所需的权限。每一步都是独立的对话框,后台不会有任何隐式动作。流程走完,面板就会出现在 Mail 上方,可以开始整理邮件了。

Mail 文件夹访问

第一步。Sortail 会打开一个指向 ~/Library/Mail打开文件夹 窗口,请你确认。这会授予一次性的、限定在沙盒内的只读权限,以访问 Mail 的本地 Envelope Index——用于在批量操作前统计邮件数量,以及瞬时加载邮箱列表。如果不授予,Sortail 无法显示某个操作会影响多少邮件,邮箱列表也可能是空的。如果以后想重新授权,可以到「设置 → 权限 → Mail 文件夹访问」里再次开启。

Mail Folder Access dialog

自动化

第二步。Sortail 会询问是否启用对 Apple Mail 的自动化控制——正是这一权限让 Sortail 能够代你执行移动、删除和归档操作。只要确认一次,Sortail 就会出现在「系统设置 → 隐私与安全性 → 自动化」里,下面会列出 Apple Mail。如果你拒绝了,「移动」「删除」「归档」和「新建邮箱」就无法工作,直到自动化被授权为止;任何时候都可以再到「系统设置」里把 Sortail 重新打开。

Automation permission dialog

登录时启动

Sortail 首次启动时会自动注册为登录项,以便随 macOS 一起启动。你随时可以在 Sortail 菜单(右键点击菜单栏图标 →「登录时启动」)或「系统设置 → 通用 → 登录项目」里切换。

通知

通知默认关闭。想开启操作完成后的横幅提示,到「设置 → 通用」打开通知开关——macOS 会立刻弹窗请求权限。以后随时可以用同一个开关关掉。

面板

紧凑面板

紧凑面板

浮动面板

浮动面板

移动到邮箱

执行移动操作前,先选好目标文件夹。点击输入框,下拉列表会列出所有账户的全部文件夹,敲几个字母就能实时筛选。要是还没选文件夹就直接点了移动按钮,下拉列表会自动展开。Sortail 还会根据你过去的整理习惯在列表里显示建议Pro

范围

设置对话和发件人操作的默认范围。所有文件夹——在整个邮件库中操作。当前文件夹——只在当前打开的邮箱中操作。

确认对话框

这只是默认值——每次对话或发件人操作前都会弹出确认对话框,里面可以临时改变范围。

移动

移动邮件
把选中的邮件移动到指定邮箱。
移动整段对话 Pro
把当前对话里的所有邮件移动到所选邮箱。
移动发件人邮件 Pro
把这位发件人的所有邮件都移动到所选邮箱。按当前设定的范围(全部 / 当前)执行。

删除

删除邮件
把选中的邮件移到废纸篓。
删除整段对话 Pro
把当前对话里的所有邮件都移到废纸篓。
删除发件人邮件 Pro
把这位发件人的所有邮件都移到废纸篓。按当前设定的范围(全部 / 当前)执行。已经在废纸篓里的邮件会跳过。

归档

归档邮件
把选中的邮件归档到 Mail 自带的归档文件夹。
归档整段对话 Pro
归档当前对话里的所有邮件。
归档发件人邮件 Pro
归档这位发件人的所有邮件。按当前设定的范围(全部 / 当前)执行。已经在归档里的邮件会跳过。

其他

创建邮箱
弹出一个小对话框,可以在你任意账户下新建邮箱。选好账户,可选父文件夹(默认是根目录),再输入邮箱名称即可。新文件夹会在 Apple Mail 里创建,并加入 Sortail 的邮箱列表。大多数情况下立刻就能往里归档邮件;遇到较慢的 IMAP 服务器,可能要等几秒同步。
创建新邮箱对话框

设置

通用

设置 — 通用
面板样式
选择面板在屏幕上的显示方式。浮动——可拖动的面板,始终浮在 Mail 上方,可以放在屏幕任意位置。紧凑——纤细的横向工具栏,九个操作排成一行,占用屏幕空间最少。
默认范围
设定打开面板时,对话和发件人操作的默认范围是当前文件夹还是所有文件夹。每次执行操作前的确认对话框里都可以临时改。
通知
控制是否显示操作后的横幅通知。打开后,每次移动、删除或归档完成时,Sortail 都会弹一条简短通知告诉你结果。第一次打开开关时,macOS 会立刻弹出系统对话框请求通知权限。
移动时标记为已读
打开后,每封被移动到邮箱的邮件都会在同一步里标记为已读。如果你希望整理过的邮件以「已读」状态从收件箱里消失,这个开关很方便。
归档时标记为已读
同样的逻辑,对应归档操作。如果你觉得「归档就等于已读并处理完毕」,保持打开即可;如果想保留归档邮件的未读状态,关掉就行。

确认

设置 — 确认

控制哪些批量操作在执行前需要确认。

移动 / 删除 / 归档 — 对话与发件人
六个复选框,对应每种操作(移动、删除、归档)和每种范围(对话、发件人)的组合。勾选后,对应操作在执行前会先弹出确认对话框,里面会显示具体的邮件数量,还可以在当前所有文件夹之间切换来预览影响。在任意对话框里勾选「不再询问」,就能永久跳过这一类操作的确认。

语言

设置 — 语言
界面语言
独立于系统语言,单独设置 Sortail 的显示语言。已支持:English、Русский、Deutsch、Español、Français、Italiano、Português (Brasil)、Nederlands、日本語、中文(简体)、한국어。选择新语言后会弹出确认对话框询问是否重新启动——只有点击立即重启,更改才会保存并生效。点击取消则保留当前语言。

权限

设置 — 权限

每个项目旁的绿色圆点表示该权限已激活。

通知
显示操作后横幅提示所需的权限。把「通知」开关切到,macOS 会立刻请求权限。授权之后,这个开关就用来控制是否显示横幅。如果之前已经拒绝过,这里的按钮会跳转到「系统设置 → 通知」。
Mail 文件夹访问
对 ~/Library/Mail 的一次性访问——用来从 Mail 资料库(Envelope Index)读取邮件数量。没有这项权限,Sortail 没法在执行操作前告诉你将影响多少封邮件,邮箱列表也可能是空的。点击授予访问,在弹出的面板里选中 Mail 文件夹就行。

Sortail 会请求两项权限。Mail 文件夹访问——一次性请求,用来从你的 Mail 资料库(~/Library/Mail)读取邮箱列表。自动化(Apple Mail)——Sortail 用它来代你控制 Mail(move/archive/delete)。

macOS 的一个特殊行为:「自动化」权限的系统对话框只会弹出一次。如果你不小心点了「不允许」,macOS 就再也不会弹这个对话框——所以 Sortail 在这种情况下会直接打开「系统设置 → 隐私与安全性 → 自动化」,让你手动把 Sortail → Mail 的开关打开。这不是 bug,而是 TCC 的保护行为。

高级

设置 — 高级
订阅
设置顶部 Sortail 标题旁的套餐徽章会显示当前状态——FREEPRO管理…按钮会跳转到 App Store 的订阅管理页面。包含 7 天免费试用,试用结束前不会扣费。除非在订阅周期结束前至少 24 小时取消,否则订阅会按年自动续费。取消方式:苹果菜单 → 系统设置 → Apple ID → 媒体与购买项目 → 订阅 → Sortail → 取消订阅。换了新 Mac(或重新安装)想恢复购买,从 Sortail 菜单打开升级界面,点击恢复购买即可——Sortail 会通过 App Store 验证你的 Apple ID,并立刻解锁 Pro。
诊断日志
点击发送日志…会自动打开一封写好的支持邮件,并附上诊断日志。遇到问题时用这个功能——日志能帮我们更快定位问题。日志保存在 ~/Library/Application Support/Sortail/sortail.log

关于

设置 — 关于
网站
在默认浏览器中打开 sortail.com
指南
打开 sortail.com/zh/guide.html,查看图文并茂的快速概览。
手册
打开 sortail.com/zh/manual.html,查看完整参考文档。
隐私政策
打开 sortail.com/zh/privacy.html 上的隐私政策——涵盖 Sortail 收集什么、不收集什么,也包括 Gmail API 访问的详细说明。
App Store
打开 Mac App Store 上的 Sortail 页面,可以在那里评分或留言。
支持
遇到任何问题,点这里会打开一封发给 support@sortail.com 的写好邮件。

菜单

左键点击——如果 Mail 没在运行就启动它;在后台就调到前台;已经在前台就切换面板的显示。右键点击——打开下面这个菜单。

打开邮件
仅当 Apple Mail 未运行时才在菜单中显示。点击以启动。
升级到 Pro
打开升级界面。包含7 天免费试用,试用期结束前不会扣费。如果你之前订阅过,点恢复购买就能用 Apple ID 直接解锁 Pro,不用重新订阅。
登录时启动
控制 Sortail 是否在你登录时自动启动。默认打开。也可以在「系统设置 → 通用 → 登录项目」里管理。
设置
打开设置窗口。
帮助
打开本手册。
退出 Sortail
退出 Sortail。面板会消失,重新启动前所有操作都用不了。手动重启的方法:从 Launchpad、Spotlight 或应用程序文件夹里打开 Sortail。如果登录时启动已经打开,Sortail 会在下次登录时自动启动,不用再手动操作。如果还没打开,重启后建议把它打开,以后 Sortail 就会随 macOS 自动启动了。

Gmail 集成

如果你在 Apple Mail 里添加了 Gmail 账户,Sortail 可以选择性地通过 Gmail API 跟它们直接对接,让归档、移动、删除的实际效果跟 Gmail 原生行为保持一致。本节会讲清楚这项集成为什么存在、能做什么,以及怎么连接、怎么断开。

为什么需要

Apple Mail 通过 IMAP 跟 Gmail 通信。在 Apple Mail 里归档邮件时,邮件并不会真的在 Gmail 那边被归档——Mail 只是把邮件复制到本地的「Archive」文件夹,Gmail 服务器上那封邮件的 INBOX 标签仍然在。下次 Mail 同步,这封邮件又会重新出现在收件箱里。

Gmail API 让 Sortail 可以做真正的归档——在不删除邮件的前提下去掉 INBOX 标签,效果跟在 Gmail 网页版或手机 app 里归档完全一致。Gmail 账户上的「移动」(改标签)和「删除」(移到回收站)也是同样的逻辑。

Sortail 会做的事

当你对已连接的 Gmail 账户触发操作时,Sortail 会用 Gmail API 来:搜索某位发件人的邮件、列出符合筛选条件的邮件 ID,以及修改标签(添加或移除 INBOX、Trash 或你的自定义标签)。所有请求都从你的 Mac 直接发送到 Google 的服务器——Sortail 没有自己的服务器。

Sortail 不会访问的内容

Sortail 不会读取邮件正文、附件、草稿、联系人或设置。只在为你执行操作时识别邮件需要用到的邮件头数据——发件人、主题、邮件 ID——才会被读取。Sortail 不会下载或缓存你的邮件内容。

Sortail 不会对你的数据做的事

— 不会传给第三方(Google 本身除外)。
— 不会存放在 Sortail 或 Infonet AS 的服务器上(我们没有任何处理你邮件的云服务)。
— 不会用于广告、再营销或基于兴趣的定向广告。
— 不会用于训练、开发或改进任何 AI 或机器学习模型。
— 不会有人员访问,除非(a)经你明确同意,(b)出于安全目的(例如调查滥用行为),(c)为遵守适用法律,或(d)数据已经过聚合与去标识化处理后仅用于内部运营。

如需查看正式披露内容,请参阅隐私政策中的 Gmail API 访问章节

Gmail Connection

OAuth 权限范围

Sortail 只申请一个权限范围:https://www.googleapis.com/auth/gmail.modify。这是执行上述标签变更操作所需的最小权限。Sortail 不会申请 gmail.readonlygmail.composegmail.send 或其他任何 Gmail 权限。

连接账户

Sortail 不会提前连接 Gmail。连接是按需进行的:第一次在 Gmail 账户上触发能用到 Gmail API 的操作(比如「移动发件人」或「归档发件人」)时,Sortail 会打开 Gmail Connection 面板,列出 Apple Mail 里的 Gmail 账户和它们当前的连接状态。

在面板里点击想授权的账户旁边的 连接,系统会用默认浏览器打开 Google 登录页面。用对应的 Gmail 地址登录,确认 Sortail 申请的权限,然后点 允许。浏览器标签页会自动关闭,面板也会刷新显示该账户已连接。再点 继续,就可以继续执行最初的操作。

连接完全是可选的。你也可以不连接,直接点 继续——Sortail 会跳过 Gmail API,按原本的方式处理这个账户。如果想直接放弃整个操作、不做任何更改,那就点 取消

断开连接

想撤销 Sortail 的 Gmail API 访问权限,请到 myaccount.google.com/permissions,在已连接应用列表里找到 Sortail,点击 移除访问权限

下一次 Sortail 为这个账户调用 Gmail API 时,会自动检测到权限已被撤销,从 macOS Keychain 中清除 OAuth 令牌,并把该账户标记为未连接。下次相关操作时,这个账户又会出现在 Gmail Connection 面板里——你可以选择重新连接,也可以跳过。

如果 Sortail 是在你正在执行某个操作的过程中发现权限被撤销(比如你刚刚在 Google 账户的安全设置里取消了对 Sortail 的授权),它不会用一条让人看不懂的错误把流程卡住:Sortail 会自动在自己这边断开该账户、打开 Gmail Connection 面板并选中这个账户,引导你重新连接。重新走完 OAuth 后,你可以立刻再试一次刚才那个操作——状态会被完整恢复。

凭据存放位置

OAuth 访问令牌和刷新令牌都保存在你本机的 macOS Keychain 里,由 macOS 加密。它们绝不会上传到 Sortail 或 Infonet AS 的服务器——每个 Gmail API 请求都是从你的 Mac 直接发往 Google。

日志与支持

Sortail 会在本机维护一份诊断日志——它存放在 ~/Library/Application Support/Sortail/sortail.log,并会自动轮转(最多保留 1 MB)。出问题时,打开「设置 → 高级」并点击 发送日志——Sortail 会用你的默认邮件客户端打开一封带最新日志附件的邮件,你只需要点「发送」就好。日志中不包含邮件正文和发件人地址,只记录技术性事件(启动、被授予的权限、AppleScript 超时、Gmail API 错误)。

故障排除

Mail 显示的邮件数与 Sortail 不同

Sortail 从 Mail 的本地 Envelope Index 读取邮件数量,这个索引可能比 IMAP 服务器稍稍滞后——尤其是大批量同步、账户迁移之后,或者 Mail 还在后台下载邮件的时候。这是正常现象。

等 Mail 同步完成(侧边栏里的进度条消失)就好了。如果差异一直存在,可以重建索引:先退出 Mail,再按住 Option 键打开,启动时索引会自动重建。

对 Gmail 账户的操作之后也可能出现类似的延迟:Sortail 会立刻把操作发给 Gmail API,而 Mail 则要通过 IMAP 同步追上来,通常只要几秒。如果操作的瞬间,Mail 的计数还跟 Sortail 刚刚显示的不一致,稍等一下就好——Mail 会把状态拉过来。

Mail 打开时面板未出现

点击菜单栏里的 Sortail 图标——一次点击就可以隐藏和显示面板。即使面板被隐藏,图标也会一直留在菜单栏里,所以随时都能从那里把面板叫回来。

按钮显示为灰色或无响应

通常是下面两种情况之一:

  • Mail 里没有选中邮件——在列表中选一封邮件,按钮就会自动可用。
  • Sortail 缺少某项权限——这时面板角落会出现一个 按钮。点击它并按提示操作,授予所需的访问权限即可。
切换到其他应用时面板消失

这是有意为之。Sortail 的面板专门做成不打扰其他工作——只在 Mail 处于前台时显示,切到别的应用就自动隐藏。切回 Mail,面板就会再出现。

重新安装应用后 Pro 功能被锁定

你的订阅绑定在 Apple ID 上,跟具体安装无关。从 Sortail 菜单打开升级界面,点击恢复购买——App Store 会验证你的 Apple ID,立刻解锁 Pro,不用重新订阅。

下拉列表中没有邮箱

打开「设置 → 权限」,点击「Mail 文件夹访问」旁边的授予访问权限。这会给 Sortail 一次性的访问权限,让它能从你的 Mail 资料库里读取邮箱列表。

同样的事也可以直接在面板上完成:如果 Mail 文件夹访问权限丢失,面板角落会出现 按钮——点击后 Sortail 会弹出重新连接的对话框。

已移动的邮件又出现在 POP3 账户的收件箱里

POP3 账户将邮件保存在本地。当 Sortail 把邮件从收件箱移走时,这个动作只对本地副本生效。如果你的账户设置为在服务器上保留邮件,Mail 下次检查时可能会再次下载这些邮件。

想解决这个问题,打开「Mail → 设置 → 账户 → [对应的 POP 账户] → 账户设置」,把「从服务器移除副本」设为「移出收件箱时」。这样每当邮件被移出收件箱,Mail 就会从 POP 服务器上一并删除,避免出现重复。

这是 POP3 协议本身的限制,所有邮件客户端都一样,不只是 Sortail。IMAP 账户没有这个问题。

升级界面一直显示「不可用」或「加载中…」

这说明 Sortail 没法访问 App Store 来获取订阅产品。检查一下网络连接,确认已经登录 App Store(系统设置 → Apple ID)。关掉升级界面再重新打开——Sortail 每次打开时都会重试。

如果你已经是订阅用户,但 Pro 功能仍然被锁,那就改点恢复购买——它会通过你的 Apple ID 验证,不需要再去拉取产品信息。

Gmail「归档发件人」实际上没有归档——邮件仍留在收件箱中

Apple Mail 的 IMAP 路径没法对 Gmail 做真正的归档——它把邮件复制到本地「Archive」文件夹,但在 Gmail 那边保留了 INBOX 标签,所以邮件会在你手机上重新出现。Sortail 通过 Gmail 集成解决这个问题:在 Gmail Connection 面板里连接受影响的 Gmail 账户后,Sortail 会用 Gmail API 直接移除 INBOX 标签,效果跟在 Gmail 网页版里归档一样。没连接时则只走 Apple Mail 的 IMAP 路径。

面板角落里的 ⚠ 图标是什么意思

这个图标会在 Sortail 缺少当前操作所需权限时出现,可能是下面两种情况:

  • 无法访问 Mail 文件夹(~/Library/Mail)——点击后 Sortail 会提示重新连接访问权限。
  • 未授予 Mail 的自动化权限——点击后会打开「系统设置 → 隐私与安全性 → 自动化」。

直接点这个图标就行——Sortail 会告诉你具体要开启什么。权限齐全后,按钮会自动隐藏。

Mail 没打开时如何从 Sortail 启动它

Mail 没运行时,悬浮面板会保持隐藏——只有 Mail 处于活动状态时它才出现。菜单栏里仍保留 Sortail 图标:点一下就能启动 Mail。Mail 起来之后,面板会自动回来,你可以继续工作。

移动邮件后 Mail 中的选中状态消失

通过 AppleScript 移动邮件时 Mail 会丢失焦点,而 macOS 不允许第三方 App 把焦点还回去——这是系统层面的限制,并不是 Sortail 的 bug。可以手动点击下一封邮件,或者在 Mail 里使用 / 方向键。

Sortail 自动断开了我的 Gmail 账户——「访问权限已被撤销」

这是正常的保护性反应。当 Sortail 收到 Google 返回的 invalid_grant 错误或 "Token expired or revoked" 时,会自动断开自己这边的账户连接——否则后续每个操作都会以一个让人困惑的错误结束。

常见原因:Google 撤销了令牌(例如你在 Google 账户的安全设置里把 Sortail 从应用列表中移除了)、长时间未使用,或安全策略发生了变更。有时令牌也会因为系统重装而从 macOS 的钥匙串里消失。

处理办法:Sortail 会自动打开 Gmail 连接面板并选中这个账户——点击 Connect,重新走一遍 OAuth 流程。重新连接成功后,再试一次刚才的操作就行——状态会完整恢复。

Sortail 自动在「On My Mac」下创建了一个「Archive」文件夹

POP3 账户在服务器端没有「归档」这个对应概念——这是协议本身的特点。为了让 归档 按钮在 POP3 上也能用,Sortail 会在首次启动时把每个 POP3 账户映射到唯一的本地账户「On My Mac」上,如果那里没有 Archive 文件夹,就用本地化名字创建一个。

这是一次性的自动设置。通过 Sortail 归档的 POP3 邮件会进入「On My Mac」→ Archive,并不会丢失。如果你有多个本地账户,或者想把归档目录指向别的地方,第一次归档时手动选一下文件夹,Sortail 会记住你的选择。

哪些操作需要 Pro 订阅

对单封邮件的基本操作——移动删除归档——都是免费且不限次数的。

需要 Pro 订阅的功能包括:

  • 会话级操作 (Thread):移动会话、删除会话、归档会话;
  • 发件人级操作 (Sender):从该发件人移动、从该发件人删除、从该发件人归档;
  • 智能建议 (Smart Suggestions) ——Sortail 会记住你平时把每位发件人的邮件移到哪个邮箱,并在下次给出建议。

首次启动时可以使用免费试用期;试用结束后,Pro 通过 App Store 订阅。具体内容和价格请见应用内的 Pro 页面。

Sortail 询问要把哪个文件夹用作归档

这是正常情况——你的 IMAP 服务器没有按「标准」给任何文件夹标记为归档。Apple Mail 和 Sortail 是依靠 RFC 6154 的 \Archive 标记来识别归档文件夹的,这个标记由服务器在 IMAP 命令 LIST 的响应里返回。在 Synology MailPlus、自部署 Dovecot,以及部分企业 IMAP 上,这个标记根本就没有被设置,但文件夹本身(「Archive」「Archived」「Saved」等)其实是存在于服务器上的。

遇到这种情况,Sortail 会在你第一次归档时弹出一个列出该账户所有文件夹的选择器——选你心目中的归档文件夹就行,Sortail 会为该账户记住这个选择(不会上传到外部,仅在本地保存)。之后这个对话框不会再出现。

如果你想从服务器层面彻底解决:在 Synology 上,把 mailbox "Archive" { auto = subscribe; special_use = \Archive } 这一段加入 Dovecot 配置(通过 SSH 编辑;配置在重启后保留,但每次升级 MailPlus 套件都会被覆盖)。这样所有客户端都能自动识别这个文件夹了。