下载

命令行(开发者预览)

foldmail 命令:当前状态、命令、选项、规则文件和退出码。

开发者预览。 foldmail 不包含在 FOLD App 中。它目前是从 FOLD 源代码构建的版本,用于开发和测试。它使用自己的本地数据存储,而不是 FOLD App 的数据(macOS 沙盒将后者保存在 App 的容器中)。因此,命令行看不到你在 App 中的邮件,它放入队列的邮件也不会由 App 发送。它的消息和帮助文本目前为德语。

本页描述该预览版目前的功能。在命令行正式推出之前,命令、选项和输出都可能发生变化。

命令

命令作用
foldmail accounts列出账户
foldmail mailboxes --account <name>列出某个账户的文件夹,以及未读数和总数
foldmail search <query>使用搜索语法进行搜索;list 是其别名
foldmail read <id>显示一封邮件;--headers 会省略正文。如果本地没有存储正文,则显示预览
foldmail flag <id…> --add <flag> --remove <flag>设置或移除标记和标签,例如 \Seen\Flaggedimportant;两个选项都可以重复使用
foldmail delete <id…>从本地存储中移除邮件;必须明确指定 ID
foldmail compose --from <addr> --to <addr>构建邮件并将其写入标准输出
foldmail send --account <name> --from <addr> --to <addr>compose --enqueue 相同:将邮件放入发件箱
foldmail outbox list --account <name>列出发件箱
foldmail outbox cancel <id>将一封等待中的邮件从发件箱中撤回
foldmail filter run --rules <file>运行规则文件;除非指定 --apply,否则只做预览
foldmail help显示帮助;不带参数运行 foldmail 也会显示帮助

命令行本身不发送邮件。sendcompose --enqueue 只会将邮件放入命令行的发件箱;foldmail 不会投递它,FOLD App 也不会读取该发件箱。内置帮助中的示例仍使用 fold;实际命令是 foldmail

选项

选项适用于含义
--json全部以 JSON 输出(带缩进、键已排序、日期采用 ISO 8601)。该结构尚未版本化
--quiet全部只输出 ID,或只输出已更改邮件的数量
--limit <n>search最大结果数,默认为 100
--offset <n>search跳过前 n 个结果
--account <name>mailboxessendcompose --enqueueoutbox list账户显示名称或地址
--headersread仅邮件头
--add--remove <flag>flag要设置或移除的标记或标签
--from--to--cc--bcc--subject--bodycomposesend邮件字段;--to--cc--bcc 可以重复使用。不带 --body 时,其余参数构成正文
--enqueuecompose放入队列,而不是输出
--delay <seconds>sendcompose --enqueue发送前等待的时间,作为撤销时限
--rules <file>filter runJSON 格式的规则文件
--applyfilter run应用规则,而不是预览

在命令行中,account:from-account: 按账户显示名称或地址筛选。in: 在这里同样无效果。

请将查询作为一个带引号的参数传入。以减号开头的单独参数会被解读为选项并被丢弃,因此请写成 foldmail search 'from:anna -is:read',或者在以减号开头的查询前加上 --foldmail search -- '-is:read'

规则文件

filter run 读取的规则与 App 的过滤规则结构相同,以 JSON 编写:

{
  "schemaVersion": 1,
  "rules": [
    {
      "name": "Newsletters",
      "match": "from:[email protected]",
      "actions": [{ "type": "markRead" }, { "type": "addFlag", "flag": "newsletter" }],
      "stopOnMatch": false
    }
  ]
}

操作类型:markReadmarkUnreadaddFlagremoveFlag(带 flag)、deletemove(带 mailbox)、forward(带 to,一个列表)以及 autoReply(带 body)。使用 --apply 时,包含 moveforwardautoReply 的规则文件会在发生任何更改之前被拒绝;预览仍会显示其匹配项。

退出码

代码含义
0成功
1一般错误,例如无法打开存储、不支持某个搜索运算符(has:attachment)、邮件正文或附件不可用,或发件箱条目已无法取消
2用法错误:未知命令、缺少选项或选项值、规则文件无法读取、查询或邮件 ID 无效
3未找到任何内容:结果为空、邮件或文件夹未知,或没有规则匹配
4邮件数据不完整或无法读取

如果命令行存储中的某个账户使用 Fortress 模式,foldmail 会拒绝运行并以 1 退出,因此它绝不会将未加密的数据写入加密的存储。

示例

foldmail search 'from:anna is:unread' --json
foldmail search 'is:unread' --quiet | xargs foldmail flag --add '\Seen'
foldmail compose --from [email protected] --to [email protected] --subject Hi --body 'Test' > mail.eml
foldmail filter run --rules ~/rules.json
foldmail filter run --rules ~/rules.json --apply