Каким синтаксисом заменить постфиксную хеш-базу данных, например
domain.tld PREPEND my-header: foobar
со статической картой?
документы определить это как Example: "inline:{ key=value, { key = text with whitespace or comma }}"
.
Несколько способов его замены, казалось, не работают, и даже неясно, сколько полей действительно имеет hash: db. домен - единственный ключ, а остальное - строка? Должен ли быть какой-то синтаксис списка для трех полей, связанных с доменом? А как насчет ключа с несколькими значениями (несколько строк, начинающихся с одного домена в хеше: db)?
Во-первых, я постараюсь прояснить некоторые недоразумения относительно таблицы поиска постфиксов на основе официальная документация. Короче говоря, таблица постфиксов должна состоять из пары ключ-значение. Оба ключа-значения имеют строковый тип данных.
сколько полей действительно имеет hash: db. домен - единственный ключ, а остальное - строка?
ДА. Всего ОДИН ключ и ОДНО значение. Значение имеет несколько форматов, которые предназначены для разных целей, таких как псевдоним, транспорт, доступ и т. Д. См. man-страницы postfix, особенно в Механизмы с приводом от стола раздел.
Должен ли быть какой-то синтаксис списка для трех полей, связанных с доменом?
Некоторые таблицы поддерживают эту строку в виде списка. Например, таблица псевдонимов позволяет вам, например, определить несколько целевых псевдонимов.
root root@gmail.com root@yahoo.com
Здесь значение было разделено пробелом или запятой.
А как насчет ключа с несколькими значениями (несколько строк, начинающихся с одного домена в хеше: db)?
Если в таблице есть повторяющийся ключ, постфикс выберет значение первого совпадения. В случае хеш-таблицы была выбрана верхняя запись, остальные значения игнорировались.
Теперь я постараюсь ответить на ваш вопрос о статических и / или встроенных картах. Обратите внимание, что эти два типа таблиц отличаются друг от друга.
Встроенные карты будут представлены в 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}}
Для текста без пробела мы можем использовать синтаксис ключ = значение. С пробелами вам понадобится скобка, чтобы их окружить.
Теперь статические карты были другими. Таблица была похожа на таблицу с подстановочными знаками. Postfix может искать любой ключ, но ответ будет статическим значением. Для постфикса с версией ниже 3.0 статическая таблица не поддерживает строку значений с пробелом. Для postfix 3.0 и новее вы можете заключить значение в скобки, чтобы добавить в него пробелы. Например
static:REJECT
или
static:{REJECT get out from my postfix}