#maildir #cli

app vmt

非常主观的邮件交互工具包

5 个版本 (2 个破坏性更新)

1.0.0-alpha.1 2024 年 8 月 22 日
0.8.0 2024 年 1 月 3 日
0.6.0 2023 年 1 月 10 日
0.5.1 2022 年 11 月 18 日
0.5.0 2022 年 11 月 17 日

#14 in 电子邮件

每月 45 次下载

GPL-3.0-or-later

40KB
961

呕吐邮件工具 - vmt

Crates.io builds.sr.ht status

vmtVomit 项目 的主要工具。它的目标是让您在无需 MUA 的情况下(几乎)对您的电子邮件做任何事情。相反,它被设计成可以集成到需要访问电子邮件的(基于 CLI 的)工作流程中。

注意: 目前正在进行大量实验。此处描述的功能应该可以合理可靠地工作,但随着新功能的添加,接口(子命令、参数)可能会发生变化。

vmt 使用的核心机制是提供一个基于 Skim(Rust 中与较流行的 fzf 类似)的交互式搜索机制,它允许您选择一个或多个电子邮件,并生成这些电子邮件的文件名。然后,这些文件名可以传递给其他工具。它还提供了一些内置命令,用于您可能希望使用其他工具执行的一些常见操作。

描述的基本功能由 vmt pick 命令提供。它捕获您的终端,允许您交互式地选择一封电子邮件,然后将电子邮件的文件名写入 stdout。以下是一个示例

"vmt pick" example

在 simplest case,这可以用来输出文件并将内容通过管道传递给处理电子邮件输入的程序,例如 git am。由于这是一个常见的用例,因此提供了 vmt cat 命令。以下是一个在邮件列表中流传的补丁的应用示例

"vmt cat" example

当然,电子邮件也用于其他用途,如发送附件。《code>vmt 提供了 vmt att 命令(它本身也有各种子命令)。以下是一个列出并保存附件的简单示例

"vmt att" example

入门

vmt 需要存储在 m2dir 格式的邮件。您可以使用 vmt sync 命令将您的 IMAP 账户同步到本地的 m2dir。

由于目前没有真正的 MUA 支持 m2dir,并且包含的同步功能仍然是实验性的,因此建议以下设置

  • 使用您选择的MUA来管理IMAP账户中的电子邮件
  • 定期使用 vmt sync --pull 命令将远程状态拉到本地m2dir

有关安装选项,请参阅安装部分;有关初始配置,请参阅配置文件部分。

资源地址

大多数命令接受一个或多个可选路径。在 vmt 中,路径可以指代邮箱或电子邮件。如果省略路径,将执行交互式选择器。

路径可以是“虚拟”的,也可以是实际的文件系统路径。绝对路径始终解释为文件系统路径。相对路径首先检查是否存在。如果不存在,vmt 将检查配置文件,并尝试将提供的路径解释为相对于账户根部的相对路径。

使用实际文件系统路径的示例(这些在无需配置文件的情况下也能工作)

  • /home/conrad/.mail/INBOX
  • .mail/lists/knot(如果 $CWD/home/conrad

如果已配置账户,以下示例与上面示例等价

  • INBOX
  • lists/knot

命令

注意:本节 - 以及链接的man手册 - 可能已过时;它们目前正在为1.0版进行修订。

这是一个可用命令列表,其中包含到相应man手册的链接。主man手册是 vmt(1)

  • pick 交互式选择邮件并打印到stdout的完整路径
  • ls 列出邮箱或电子邮件
  • att 处理邮件附件
  • cat 将整个邮件输出到stdout
  • hdr 处理电子邮件头
  • mime 处理MIME部分
  • show 显示纯文本邮件正文(如果存在)
  • sync 同步本地maildir到远程IMAP账户

配置文件

默认位于 ~/$XDG_CONFIG_HOME/vomit/config.toml,这通常意味着 ~/.config/vomit/config.toml。可以使用全局 -c <path> 标志使用位于任意位置的配置文件。

一个简单的配置示例

[<account>]
local = ~/.maildir
# Everything below is only needed if you intend to use `vmt sync`
remote = "imap.example.com:993"
user = "myusername"
pass-cmd = "pass show mail/myaccount"
# or use this:
#password = "s3cr34"

可以通过指定多个账户,默认情况下 vmt 将使用第一个账户。要使用不同的账户,可以使用全局标志 -a <account>

与所有Vomit工具一样,vmt使用共享的“vomit-config”配置文件。有关更多详细信息,请参阅其文档。请注意,它支持一些vmt目前不使用的配置选项。

安装

目前,只有一个AUR软件包

您也可以运行 cargo install vmt 来安装最新发布的版本。请确保可执行文件在您的 $PATH 中 ($PATH 应包括您的 cargo 主目录)。

要从这个仓库安装最新版本,您可以使用 cargo build --release 构建,并可选地运行 cargo install

依赖项

~40–54MB
~1M SLoC