例如,替换后缀哈希数据库的语法是什么
domain.tld PREPEND my-header: foobar
使用静态地图吗?
文档将其定义为Example: "inline:{ key=value, { key = text with whitespace or comma }}"
。
几种替代方法似乎都行不通,甚至不清楚 hash: db 到底有多少个字段。域是唯一的键,其余的是字符串吗?是否应该有一些与域相关的三个字段的列表语法?那么具有多个值的键呢(hash: db 中以相同域开头的多行)?
答案1
首先,我将尝试在这里澄清一些关于基于后缀查找表的困惑官方文档简而言之,后缀表必须由键值对组成。键值对都是字符串数据类型。
hash:db 到底有多少个字段。域是唯一的键,其余的是字符串吗?
是的。只有一个键和一个值。该值有多种格式,用于处理不同的目的,例如别名、传输、访问等。请参阅postfix 手册页,尤其是在工作台驱动机制部分。
是否应该有一些与域相关的三个字段的列表语法?
有些表支持列表式字符串。例如,别名表允许您定义多个别名目标。
root [email protected] [email protected]
这里,值以空格或逗号分隔。
那么如果一个键有多个值(哈希表中以同一个域开头的多行:db)怎么办?
当表有重复键时,Postfix 将选择第一个匹配的值。在哈希表中,将选择顶部条目,而忽略其他值。
现在,我将尝试回答您关于静态和/或内联地图的问题。请注意,这两种表格类型彼此不同。
内联映射将在 Postfix 3.0 版中引入。目前没有支持该表类型的 Postfix 稳定版本。您可以在 Postfix 3.0 RC1 中阅读它发行说明。
假设你想转换包含如下条目的哈希表
example.com DEFER come back later please
example.net REJECT
example.org PREPEND X-Foo: Bar
那么等效的内联地图是
inline:{{example.com=DEFER come back later please}, example.net=REJECT, {example.org=PREPEND X-Foo: Bar}}
对于没有空格的文本,我们可以使用 key=value 语法。如果是空格,则需要用括号括起来。
现在,静态映射有所不同。该表就像通配符键表。Postfix 可能会查找任何键,但答案将是静态值。对于版本低于 3.0 的 Postfix,静态表不支持带空格的值字符串。对于 Postfix 3.0 及更高版本,您可以用括号括起值以在其中添加空格。例如
static:REJECT
或者
static:{REJECT get out from my postfix}