如何让 Postfix 忽略虚拟别名表格式中的前导空格?

如何让 Postfix 忽略虚拟别名表格式中的前导空格?

虚拟别名表格式Postfix 在某些条件下为前导空格赋予特殊含义:

multi-line text
     A  logical  line  starts  with  non-whitespace text. A line that
     starts with whitespace continues a logical line.

我在这些文件中有很多条目,例如这个例子。特别是前缀a的长度在多个不同的行中是不同的。

# Some comment...
[email protected]           recipient
[email protected]         recipient
[email protected]       recipient
[email protected]     recipient
[email protected]    recipient
[email protected]   recipient

为了使内容更具可读性,我希望对相同的条目采用以下布局:

# Some comment...
        [email protected] recipient
      [email protected] recipient
    [email protected] recipient
  [email protected] recipient
 [email protected] recipient
[email protected] recipient

或者有时采用相同的方法,但顺序不同。不过,理论上前一个例子更常见。

# Some comment...
[email protected] recipient
 [email protected] recipient
  [email protected] recipient
    [email protected] recipient
      [email protected] recipient
        [email protected] recipient

因此,区别实际上只是添加了前导空格以使内容更具可读性。至少在第二个示例中,根据文档,前导空格将被识别为前几行的延续,而这在我的例子中是错误的。

但是第一个例子该如何处理?理论上从来没有一个起始逻辑行,但行也不是空的或者仅仅是空格或者注释。

一般来说,有没有办法配置/......后缀使得前导空格总是被忽略并且永远不会用于继续?

如果 Postfix 的当前实现根本无法实现,我会接受。只是想确保我没有遗漏任何东西。

谢谢!

答案1

Postfix 附带一个postmap预编译表的工具。

postmap hash:/tmp/virtual && postmap -s hash:/tmp/virtual

postmap hash:/tmp/virtual && postmap -q "[email protected]" hash:/tmp/virtual

但是第一个例子该如何处理呢?理论上,从来没有一个起始逻辑行,但行也不是空的、空格的或只有注释的。

Postfix 警告您“逻辑行不能以空格开头”并忽略后面的续行,导致表中只有一个条目(“abcd”)。

(这似乎不同于配置文件解析器,其中仅包含注释的行仍然算作逻辑行,并且注释会延续到所有连续行。)

一般来说,有没有办法配置/......后缀使得前导空格总是被忽略并且永远不会用于继续?

不可以。Postfix 的 readllines()“逻辑行读取”功能的使用是不可配置的。

相关内容