Como pode o postfix hash: databases ser substituído por static: ou inline:?

3

Qual é a sintaxe para substituir um banco de dados hash de postfix, por exemplo

domain.tld PREPEND my-header: foobar

com um mapa estático?

docs defina-o como Example: "inline:{ key=value, { key = text with whitespace or comma }}" .

Várias maneiras de substituí-lo pareciam não funcionar e ainda não está claro quantos campos o hash: db realmente possui. é o domínio a única chave e o resto uma string? Deve haver alguma sintaxe de lista para os três campos associados ao domínio? E que tal uma chave com múltiplos valores (múltiplas linhas iniciando com o mesmo domínio no hash: db)?

    
por allo 05.02.2015 / 23:56

1 resposta

4

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}
    
por 06.02.2015 / 08:24