5 个版本 (3 个破坏性版本)
0.4.0 | 2024年4月21日 |
---|---|
0.3.0 | 2018年12月29日 |
0.2.6 | 2018年12月14日 |
0.2.0 | 2018年11月11日 |
0.1.0 | 2018年11月6日 |
#35 在 电子邮件
每月300 次下载
30KB
514 行
notcoal - notmuch 过滤器,不是由木炭制成的
notcoal
提供了一个库以及一个独立的二进制文件。后者可以用作 "初始标记" 系统,前者可以集成到更大的电子邮件客户端中,利用 notmuch-rs。
是什么?
从 JSON 文件中获取正则表达式规则,如果匹配,则添加新标签、删除标签或运行任意二进制文件进行进一步处理。规则支持 AND 以及 OR 操作。
示例
[{
"name": "money",
"desc": "Money stuff",
"rules": [
{"from": "@(real\\.bank|gig-economy\\.career)",
"subject": ["report", "month" ]},
{"from": "no-reply@trusted\\.bank",
"subject": "statement"}
],
"op": {
"add": "€£$",
"rm": ["inbox", "unread"],
"run": ["any-binary-in-our-path-or-absolute-path", "--argument"]
}
}]
这里匹配扩展为
( from: ("@real.bank" OR "@gig-economy.career") AND subject: ("report" AND "month") )
OR
( from: "[email protected]" AND subject: "statement" )
如果应用此过滤器,将执行以下操作
- 添加标签
€£$
- 删除标签
inbox
和unread
- 运行等价的
/bin/sh -c 'any-binary-in-our-path-or-absolute-path --argument'
并带有 3 个额外的环境变量
NOTCOAL_FILTER_NAME=money
NOTCOAL_FILE_NAME=/path/to/maildir/new/filename
NOTCOAL_MSG_ID=e81cadebe7dab1cc6fac7e6a41@some-isp
过滤器不仅限于匹配 from
和 subject
头部(所有这些都被视为不区分大小写),还可以尝试匹配任意头部。
此外,还有特殊的匹配字段
@path
: 匹配消息的完整路径@tags
: 匹配先前过滤器设置的标签@thread-tags
: 匹配消息线程中已存在的标签@attachment
: 匹配附件名称@attachment-body
: 匹配每个text/plain
附件的主体@body
: 匹配消息的主体
默认的 notcoal::filter
函数会遍历消息,然后按定义的顺序测试/应用过滤器。因此,任何想要匹配的标签都必须由之前的匹配规则设置。
独立使用用于“初始标记”
要安装独立的辅助二进制文件,最简单的方法是
cargoinstall --lockednotcoal --features=standalone
notcoal
将使用与notmuch本身相同的默认数据库,默认的规则文件位置在$notmuchdb/.notmuch/hooks/notcoal-rules.json
。它还期望所有新添加的消息(需要过滤的消息)都带有new
标记。为了确保设置正确,请编辑您的.notmuch-config
以包含
[new]
tags=unread;inbox;new;
此外,notcoal
将尊重配置文件的maildir同步设置。
有关提供替代值的信息,请参阅notcoal --help
。
如果您对默认值满意,可以将$notmuchdb/.notmuch/hooks/post-new
符号链接到notcoal
二进制文件。
谢谢
vhdirk为notmuch-rs
,使得这个crate成为可能,korrat为更合理的数据库发现补丁,antifuchs' gmail-britta为命名灵感,以及Recurse Center,为创建一个支持性的环境💟
依赖关系
~8–20MB
~292K SLoC