Primeiro, tentarei esclarecer algumas confusões aqui sobre a tabela de pesquisa postfix com base na documentação oficial . Em suma, a tabela pós-fixada deve ser composta por um par de valores-chave. O valor-chave tem o tipo de dados string.
how many fields the hash: db really has. is the domain the only key and the rest a string?
SIM. Apenas uma chave e um valor. O valor tem vários formatos que atendem a propósitos diferentes, como alias, transporte, acesso, etc. Consulte as páginas do manual do postfix , especialmente na seção Mecanismos controlados por tabela .
Should there be some list-syntax for the three fields associated to the domain?
Algumas tabelas suportam essa sequência de lista. Por exemplo, a tabela alias permite que você defina vários destinos de alias, por exemplo.
root [email protected] [email protected]
Aqui, o valor foi separado por espaço ou vírgula.
And what about a key with multiple values (multiple lines starting with the same domain in the hash: db)?
Quando a tabela tiver chave duplicada, o postfix escolherá o valor da primeira correspondência. Em caso de tabela de hash, a entrada superior foi escolhida, os outros valores foram ignorados.
Agora, tentarei responder sua pergunta sobre mapas estáticos e / ou inline. Por favor note que estes dois tipos de tabelas são diferentes entre si.
Os mapas embutidos serão introduzidos na versão 3.0 do postfix. Atualmente, não há release estável do postfix que suporte esse tipo de tabela. Você pode lê-lo no postfix 3.0 RC1 notas de lançamento .
Digamos que você queira converter uma tabela de hash com entradas como essa
example.com DEFER come back later please
example.net REJECT
example.org PREPEND X-Foo: Bar
Em seguida, os mapas inline equivalentes são
inline:{{example.com=DEFER come back later please}, example.net=REJECT, {example.org=PREPEND X-Foo: Bar}}
Para texto sem espaço, podemos usar a sintaxe key = value. Com espaços, você precisa de um suporte para cercá-lo.
Agora, os mapas estáticos eram diferentes. A mesa era como uma tabela de chave curinga. O postfix pode procurar qualquer chave, mas a resposta seria o valor estático. Para postfix com versão inferior a 3.0, a tabela estática não suporta string de valor com espaço . Para o postfix 3.0 e posterior, você pode envolver o valor com colchete para adicionar espaços nele. Por exemplo
static:REJECT
ou
static:{REJECT get out from my postfix}