我正在使用 postfix,LDA 是 dovecot,我recipient_delimiter
在 postfix 的手册页中找到了有用的参数。
我想使用类似这样的邮件地址[email protected]
,邮件服务器应该自动将邮件移至相应的文件夹。如果文件夹不存在,则应该创建它。
Dovecot 可以自动在配置文件上创建目录。我发现了以下选项:信箱設定和自动创建插件
因此,我可以编写一些 bash 脚本,读取邮件服务器日志,查找邮件地址,然后通过 mkdir 或 dovecot 配置创建邮件目录。但我不认为这是正确的解决方案,因为:
- 第一封邮件不会被捕获,因为此时邮件文件夹不存在。但这不是主要问题,邮件也可以通过脚本移动。
- 对此一定有更好的解决方案。
我已经在网上搜索过了,但找不到相关信息。可能(肯定)我使用了错误的搜索词。
答案1
Doevecot 支持 Sieve 过滤器处理收到的邮件。通过结合fileinto
模块, 这:create
邮箱模块选项最后子地址扩展您将能够根据邮件的扩展名将其分类到不同的文件夹中。
这会将所有邮件移动到<user>+<tag>@example.org
收件箱$tag
文件夹中的子目录中tag
。
require ["fileinto", "mailbox", "subaddress", "envelope", "variables"];
if envelope :matches :detail "to" "*" {
fileinto :create "inbox.tags.${1}";
}
答案2
我也按照你的指示操作了。基本上可以正常工作,但出于某种原因,我无法在我的电子邮件客户端(例如 Linux 桌面版 Thunderbird 和 Android 版 Fairmail)中看到新创建的文件夹。
1 Sieve 根据您的代码创建了文件夹。然后我从代码中删除了 inbox.tags。只是为了看看会发生什么。电子邮件收到后创建了一个不同的文件夹,但我也看不到那个文件夹。知道原因是什么吗?