Рассказ пойдет об Postfix PostgreSQL


Оригинал: http://www.postfix.org/PGSQL_README.html
Автор: Wietse Zweitze Venema

Введение

Postfix PgSQL карты типа позволяет подключить Postfix для PostgreSQL базу данных. Такая реализация позволяет за несколько PgSQL баз данных: вы можете использовать один для виртуального (5) таблицы, по одной для доступа (5) таблицы, и один для псевдонимов (5) таблицы, если вы хотите. Можно указать несколько серверов для той же базе данных, так что Postfix может переключиться на хороший сервер базы данных, если один идет плохо.

Занят серверы почты с помощью PgSQL карты будут генерировать много одновременных PgSQL клиентов, поэтому PgSQL сервер (ы) должен быть запущен с этим фактом в виду. Вы можете уменьшить количество одновременных PgSQL клиентов с помощью Postfix proxymap (8) услуги.
Сборка Postfix с поддержкой PostgreSQL

Эти инструкции предполагают, что вы строите Postfix из исходных кодов, как описано в инсталляции документа. Некоторые модификации могут потребоваться, если вы строите Postfix от конкретного поставщика исходного кода.

Замечание: чтобы использовать PgSQL с Debian GNU / Linux с Postfix, все что вам нужно сделать, это установить постфикс-PgSQL пакет и вы сделали. Существует нет необходимости перекомпилировать Postfix.

Для того чтобы построить Postfix с поддержкой карте PgSQL, вы указываете-DHAS_PGSQL, каталог с файлами PostgreSQL заголовка, и местоположение файла библиотеки LIBPQ.

Например:

% make tidy
% make -f Makefile.init makefiles \
        'CCARGS=-DHAS_PGSQL -I/usr/local/include/pgsql' \
        'AUXLIBS=-L/usr/local/lib -lpq'

Потом просто запустить ‘сделать’.
Настройка таблиц PostgreSQL поиска

После Postfix собран с поддержкой PgSQL, вы можете указать тип карты в main.cf так:

/ И т.д. / Postfix / main.cf:
alias_maps = PgSQL и т.д. :/ / Postfix / PgSQL-aliases.cf

В файле / и т.д. / Postfix / PgSQL-aliases.cf указывается много информации говорит постфикс, как ссылаться на PgSQL базы данных. Для полного описания см. в pgsql_table (5) справочной странице.
Пример: локальные псевдонимы

#
# PgSQL конфигурационный файл для местного (8) псевдонимы (5) поиск
#

#
# Хостов, Postfix будет пытаться подключиться к
хостов = host1.some.domain host2.some.domain

# Имя пользователя и пароль для входа в PgSQL-сервера.
кто-то пользователя =
пароль = some_password

# Имя базы данных на сервере.
DBNAME = customer_database

# Postfix 2.2 и более поздних версий SQL шаблон запроса. См. pgsql_table (5).
Запрос = SELECT forw_addr ОТ mxaliases где псевдоним = ‘% S’ и статус = “оплачиваемые”

# Для Postfix версиях до 2.2. См. pgsql_table (5) для деталей.
select_field = forw_addr
Таблица = mxaliases
where_field = псевдоним
# Не забывайте, ведущий “И”!
additional_conditions = И = статус “оплачиваемые”

Использование зеркальных баз данных

Сайты, которые имеют потребность в нескольких теплообменников почты могут наслаждаться удобством использования базы данных сетевых почтовую программу, но не хотите ввести единую точку отказа в их системе.

По этой причине мы включили возможность иметь Postfix ссылкой нескольких хостов для доступа к одной PgSQL карте. Это будет работать, если сайты созданы зеркальные PgSQL баз данных на двух и более хозяев.

Всякий раз, когда запросы не с погрешностью в один хозяин, остальные хозяева будут судить в случайном порядке. Если нет PgSQL хостов сервера достижимы, то почта будет отложено как минимум до одного из тех хозяев достижим.

Авторы

  • Этот код основан на Postfix MySQL карту Скотт хлопок и Джошуа Маркус, IC Group, Inc
  • PostgreSQL изменения были сделаны Аарон Sethman.
  • Обновления для Postfix 1.1.x и PostgreSQL 7.1 + и поддержкой для вызова хранимых процедур были добавлены Philip Warner.
  • LaMont Джонс был первоначальный Postfix PgSQL сопровождающего.
  • Ливиу Дайя пересмотрели конфигурацию интерфейса и добавлена ​​функция main.cf конфигурации.
  • Ливиу Дайя пересмотрели конфигурацию интерфейса и добавлена ​​функция main.cf конфигурации.
  • Ливиу Дайя доработанный далее Jose Luis Tallon и Виктор Duchovni разработан общий запрос, result_format, домен и expansion_limit интерфейс для LDAP, MySQL и PosgreSQL.
  • Леандро Santi обновляются PostgreSQL клиента после PostgreSQL разработчики сделали серьезные изменения API баз данных в ответ на SQL-инъекция проблемы, и сделал PQexec () обработку более надежной.