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 次下载
40KB
961 行
呕吐邮件工具 - vmt
vmt
是 Vomit 项目 的主要工具。它的目标是让您在无需 MUA 的情况下(几乎)对您的电子邮件做任何事情。相反,它被设计成可以集成到需要访问电子邮件的(基于 CLI 的)工作流程中。
注意: 目前正在进行大量实验。此处描述的功能应该可以合理可靠地工作,但随着新功能的添加,接口(子命令、参数)可能会发生变化。
vmt
使用的核心机制是提供一个基于 Skim(Rust 中与较流行的 fzf 类似)的交互式搜索机制,它允许您选择一个或多个电子邮件,并生成这些电子邮件的文件名。然后,这些文件名可以传递给其他工具。它还提供了一些内置命令,用于您可能希望使用其他工具执行的一些常见操作。
描述的基本功能由 vmt pick
命令提供。它捕获您的终端,允许您交互式地选择一封电子邮件,然后将电子邮件的文件名写入 stdout。以下是一个示例
在 simplest case,这可以用来输出文件并将内容通过管道传递给处理电子邮件输入的程序,例如 git am
。由于这是一个常见的用例,因此提供了 vmt cat
命令。以下是一个在邮件列表中流传的补丁的应用示例
当然,电子邮件也用于其他用途,如发送附件。《code>vmt 提供了 vmt att
命令(它本身也有各种子命令)。以下是一个列出并保存附件的简单示例
入门
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