如何将postfixconfiguration为每个域使用一个虚拟别名文件?

在Exim中,每个域中都有一个文件,其中文件名本身用于确定别名的域。

例如,我将有一个名为example.org的文件,其内容如下所示:

foo: somelocaluser 

这会导致邮件foo@example.org被传递给somelocaluser


Postfix中 ,常见的设置是使用名为virtual的文件,并重复每个本地部分的域:

 foo@example.org: somelocaluser bar@example.org: somelocaluser 

我怎样才能在Postfix中实现我的Exim风格的设置,从而避免重复?

不,你不能

后期哈希表中不存在您所需的function。 Postfix数据库查找总是从文件的入口获取密钥,它不能将其与文件名混合。

更多信息: 后缀查找表概述


不过,你可以用小脚本来实现。 脚本应循环所有文件,然后将文件名string附加到条目的第一列,然后将其合并。

这样丑陋的脚本应该做的很好

 for file in `find /tmp/mapfiles -type f -maxdepth 1`; do grep : "$file" | while read line; do mykey=$(echo "$line" | cut -d':' -f1) myvalue=$(echo "$line" | cut -d':' -f2) filename=$(basename "$file") echo "${mykey}@${filename}: ${myvalue}" done done 

不要忘记postaliaspostalias输出文件。