Назад | Перейти на главную страницу

Как можно заменить postfix hash: databases на static: или inline :?

Каким синтаксисом заменить постфиксную хеш-базу данных, например

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}