参考文档
每个操作、每项设置和每个菜单项的完整参考。
首次启动时,Sortail 会带你走一遍简短的引导流程,按步骤申请所需的权限。每一步都是独立的对话框,后台不会有任何隐式动作。流程走完,面板就会出现在 Mail 上方,可以开始整理邮件了。
第一步。Sortail 会打开一个指向 ~/Library/Mail 的 打开文件夹 窗口,请你确认。这会授予一次性的、限定在沙盒内的只读权限,以访问 Mail 的本地 Envelope Index——用于在批量操作前统计邮件数量,以及瞬时加载邮箱列表。如果不授予,Sortail 无法显示某个操作会影响多少邮件,邮箱列表也可能是空的。如果以后想重新授权,可以到「设置 → 权限 → Mail 文件夹访问」里再次开启。
第二步。Sortail 会询问是否启用对 Apple Mail 的自动化控制——正是这一权限让 Sortail 能够代你执行移动、删除和归档操作。只要确认一次,Sortail 就会出现在「系统设置 → 隐私与安全性 → 自动化」里,下面会列出 Apple Mail。如果你拒绝了,「移动」「删除」「归档」和「新建邮箱」就无法工作,直到自动化被授权为止;任何时候都可以再到「系统设置」里把 Sortail 重新打开。
Sortail 首次启动时会自动注册为登录项,以便随 macOS 一起启动。你随时可以在 Sortail 菜单(右键点击菜单栏图标 →「登录时启动」)或「系统设置 → 通用 → 登录项目」里切换。
通知默认关闭。想开启操作完成后的横幅提示,到「设置 → 通用」打开通知开关——macOS 会立刻弹窗请求权限。以后随时可以用同一个开关关掉。
执行移动操作前,先选好目标文件夹。点击输入框,下拉列表会列出所有账户的全部文件夹,敲几个字母就能实时筛选。要是还没选文件夹就直接点了移动按钮,下拉列表会自动展开。Sortail 还会根据你过去的整理习惯在列表里显示建议。Pro
设置对话和发件人操作的默认范围。所有文件夹——在整个邮件库中操作。当前文件夹——只在当前打开的邮箱中操作。
这只是默认值——每次对话或发件人操作前都会弹出确认对话框,里面可以临时改变范围。
控制哪些批量操作在执行前需要确认。
每个项目旁的绿色圆点表示该权限已激活。
Sortail 会请求两项权限。Mail 文件夹访问——一次性请求,用来从你的 Mail 资料库(~/Library/Mail)读取邮箱列表。自动化(Apple Mail)——Sortail 用它来代你控制 Mail(move/archive/delete)。
macOS 的一个特殊行为:「自动化」权限的系统对话框只会弹出一次。如果你不小心点了「不允许」,macOS 就再也不会弹这个对话框——所以 Sortail 在这种情况下会直接打开「系统设置 → 隐私与安全性 → 自动化」,让你手动把 Sortail → Mail 的开关打开。这不是 bug,而是 TCC 的保护行为。
~/Library/Application Support/Sortail/sortail.log。
左键点击——如果 Mail 没在运行就启动它;在后台就调到前台;已经在前台就切换面板的显示。右键点击——打开下面这个菜单。
如果你在 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 账户上的「移动」(改标签)和「删除」(移到回收站)也是同样的逻辑。
当你对已连接的 Gmail 账户触发操作时,Sortail 会用 Gmail API 来:搜索某位发件人的邮件、列出符合筛选条件的邮件 ID,以及修改标签(添加或移除 INBOX、Trash 或你的自定义标签)。所有请求都从你的 Mac 直接发送到 Google 的服务器——Sortail 没有自己的服务器。
Sortail 不会读取邮件正文、附件、草稿、联系人或设置。只在为你执行操作时识别邮件需要用到的邮件头数据——发件人、主题、邮件 ID——才会被读取。Sortail 不会下载或缓存你的邮件内容。
— 不会传给第三方(Google 本身除外)。
— 不会存放在 Sortail 或 Infonet AS 的服务器上(我们没有任何处理你邮件的云服务)。
— 不会用于广告、再营销或基于兴趣的定向广告。
— 不会用于训练、开发或改进任何 AI 或机器学习模型。
— 不会有人员访问,除非(a)经你明确同意,(b)出于安全目的(例如调查滥用行为),(c)为遵守适用法律,或(d)数据已经过聚合与去标识化处理后仅用于内部运营。
如需查看正式披露内容,请参阅隐私政策中的 Gmail API 访问章节。
Sortail 只申请一个权限范围:https://www.googleapis.com/auth/gmail.modify。这是执行上述标签变更操作所需的最小权限。Sortail 不会申请 gmail.readonly、gmail.compose、gmail.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 错误)。
Sortail 从 Mail 的本地 Envelope Index 读取邮件数量,这个索引可能比 IMAP 服务器稍稍滞后——尤其是大批量同步、账户迁移之后,或者 Mail 还在后台下载邮件的时候。这是正常现象。
等 Mail 同步完成(侧边栏里的进度条消失)就好了。如果差异一直存在,可以重建索引:先退出 Mail,再按住 Option 键打开,启动时索引会自动重建。
对 Gmail 账户的操作之后也可能出现类似的延迟:Sortail 会立刻把操作发给 Gmail API,而 Mail 则要通过 IMAP 同步追上来,通常只要几秒。如果操作的瞬间,Mail 的计数还跟 Sortail 刚刚显示的不一致,稍等一下就好——Mail 会把状态拉过来。
点击菜单栏里的 Sortail 图标——一次点击就可以隐藏和显示面板。即使面板被隐藏,图标也会一直留在菜单栏里,所以随时都能从那里把面板叫回来。
通常是下面两种情况之一:
这是有意为之。Sortail 的面板专门做成不打扰其他工作——只在 Mail 处于前台时显示,切到别的应用就自动隐藏。切回 Mail,面板就会再出现。
你的订阅绑定在 Apple ID 上,跟具体安装无关。从 Sortail 菜单打开升级界面,点击恢复购买——App Store 会验证你的 Apple ID,立刻解锁 Pro,不用重新订阅。
打开「设置 → 权限」,点击「Mail 文件夹访问」旁边的授予访问权限。这会给 Sortail 一次性的访问权限,让它能从你的 Mail 资料库里读取邮箱列表。
同样的事也可以直接在面板上完成:如果 Mail 文件夹访问权限丢失,面板角落会出现 ⚠ 按钮——点击后 Sortail 会弹出重新连接的对话框。
POP3 账户将邮件保存在本地。当 Sortail 把邮件从收件箱移走时,这个动作只对本地副本生效。如果你的账户设置为在服务器上保留邮件,Mail 下次检查时可能会再次下载这些邮件。
想解决这个问题,打开「Mail → 设置 → 账户 → [对应的 POP 账户] → 账户设置」,把「从服务器移除副本」设为「移出收件箱时」。这样每当邮件被移出收件箱,Mail 就会从 POP 服务器上一并删除,避免出现重复。
这是 POP3 协议本身的限制,所有邮件客户端都一样,不只是 Sortail。IMAP 账户没有这个问题。
这说明 Sortail 没法访问 App Store 来获取订阅产品。检查一下网络连接,确认已经登录 App Store(系统设置 → Apple ID)。关掉升级界面再重新打开——Sortail 每次打开时都会重试。
如果你已经是订阅用户,但 Pro 功能仍然被锁,那就改点恢复购买——它会通过你的 Apple ID 验证,不需要再去拉取产品信息。
Apple Mail 的 IMAP 路径没法对 Gmail 做真正的归档——它把邮件复制到本地「Archive」文件夹,但在 Gmail 那边保留了 INBOX 标签,所以邮件会在你手机上重新出现。Sortail 通过 Gmail 集成解决这个问题:在 Gmail Connection 面板里连接受影响的 Gmail 账户后,Sortail 会用 Gmail API 直接移除 INBOX 标签,效果跟在 Gmail 网页版里归档一样。没连接时则只走 Apple Mail 的 IMAP 路径。
这个图标会在 Sortail 缺少当前操作所需权限时出现,可能是下面两种情况:
~/Library/Mail)——点击后 Sortail 会提示重新连接访问权限。直接点这个图标就行——Sortail 会告诉你具体要开启什么。权限齐全后,按钮会自动隐藏。
Mail 没运行时,悬浮面板会保持隐藏——只有 Mail 处于活动状态时它才出现。菜单栏里仍保留 Sortail 图标:点一下就能启动 Mail。Mail 起来之后,面板会自动回来,你可以继续工作。
通过 AppleScript 移动邮件时 Mail 会丢失焦点,而 macOS 不允许第三方 App 把焦点还回去——这是系统层面的限制,并不是 Sortail 的 bug。可以手动点击下一封邮件,或者在 Mail 里使用 ↑ / ↓ 方向键。
这是正常的保护性反应。当 Sortail 收到 Google 返回的 invalid_grant 错误或 "Token expired or revoked" 时,会自动断开自己这边的账户连接——否则后续每个操作都会以一个让人困惑的错误结束。
常见原因:Google 撤销了令牌(例如你在 Google 账户的安全设置里把 Sortail 从应用列表中移除了)、长时间未使用,或安全策略发生了变更。有时令牌也会因为系统重装而从 macOS 的钥匙串里消失。
处理办法:Sortail 会自动打开 Gmail 连接面板并选中这个账户——点击 Connect,重新走一遍 OAuth 流程。重新连接成功后,再试一次刚才的操作就行——状态会完整恢复。
POP3 账户在服务器端没有「归档」这个对应概念——这是协议本身的特点。为了让 归档 按钮在 POP3 上也能用,Sortail 会在首次启动时把每个 POP3 账户映射到唯一的本地账户「On My Mac」上,如果那里没有 Archive 文件夹,就用本地化名字创建一个。
这是一次性的自动设置。通过 Sortail 归档的 POP3 邮件会进入「On My Mac」→ Archive,并不会丢失。如果你有多个本地账户,或者想把归档目录指向别的地方,第一次归档时手动选一下文件夹,Sortail 会记住你的选择。
对单封邮件的基本操作——移动、删除、归档——都是免费且不限次数的。
需要 Pro 订阅的功能包括:
首次启动时可以使用免费试用期;试用结束后,Pro 通过 App Store 订阅。具体内容和价格请见应用内的 Pro 页面。
这是正常情况——你的 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 套件都会被覆盖)。这样所有客户端都能自动识别这个文件夹了。