1 个不稳定版本
0.4.0 | 2023年2月9日 |
---|
206 在 电子邮件
75KB
840 行
Invoice2storage
为企业环境中的发票提供简单处理。
工作流程
每个用户都得到一个可供办公室访问的文件夹。用户可以将他们的发票转发到特定的电子邮件地址,如 [email protected]
办公室有一个地方可以收集所有发票。
操作
此脚本用作电子邮件过滤器以处理传入的发票电子邮件。
- 此脚本解析来自stdin或文件的电子邮件
- 它确定此发票属于哪个用户
- 如果目标电子邮件包含+后缀,则该后缀是用户
- 如果发件人和收件人的域名匹配,则发件人是用户
- 它尝试提取特定MIME类型的所有附件,默认为pdf文件。
- 它根据模板指定的文件夹存储提取的附件
- 它将电子邮件存储在配置的文件夹和后端
安装
使用cargo
cargo install invoice2storage
使用nix flake
您可以将此存储库添加到您的NixOS flake配置中。
配置
所有设置都可以通过命令行参数或放入yaml文件中。有关选项的完整列表,请参阅 --help
。
MTA配置
大多数MTA支持.forward
管道支持,这允许您像这样配置invoice2storage
~/.forward
包含
|/path/to/invoice2storage --arguments....
开发
所有开发工具都使用nix包管理器,该管理器可用于任何Linux发行版。这允许100%可重复和可工作的开发环境。
开发服务器
集成测试使用使用以下命令创建的NixOS VM执行
nixos-rebuild build-vm --flake .#testvm
QEMU_OPTS="-netdev bridge,id=hn0,br=intern -device e1000,netdev=hn0" ./result/bin/run-i2s-test-vm
The QEMU_OPTS取决于您的系统,在此示例中,VM连接到本地桥接intern
。
可以使用以下命令运行测试
env RUST_BACKTRACE=1 TARGET=10.0.42.158 /home/poelzi/b1/invoice2storage/scripts/nix-cargo test --package invoice2storage --bin invoice2storage -- --include-ignored
环境变量TARGET
是VM地址。
建议的VSCode工作区设置
"cSpell.customDictionaries": {
"custom-dictionary-workspace": {
"name": "custom-dictionary-workspace",
"path": "${workspaceFolder:invoice2storage}/.cspell/custom-dictionary-workspace.txt",
"addWords": true,
"scope": "workspace"
}
},
"rust-analyzer.runnables.command": "${workspaceFolder}/scripts/nix-cargo",
"cargo.automaticCheck": false,
依赖项
~27–40MB
~813K SLoC