Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Например:
domainlist domains = ${lookup pgsql{select domains from domains where sender='$sender_host_address'}{$value}fail}
При успешном выполнении запроса возвращается значение из базы, иначе совершается специальное действие fail, означающее неудачный запрос.
Несколько пугающими бывают запросы к LDAP. Разберу их поподробнее. Указание сервера и порта LDAP выглядит следующим образом:
ldap_default_servers = 127.0.0.1::389
Запросы к директории выглядят так:
${lookup ldap{ldap://ldap.test.ru/dc=${domain},ou=mail, o=tehnopark?mail?sub?(&(objectClass=inetOrgPerson)
(mail=${local_part}@${domain}))}{$value} fail}
Форма запроса описана в стандарте, но, думаю, ее стоит дополнительно пояснить. В запросе мы указываем адрес LDAP-сервера (ldap://ldap.test.ru/), basedn для поиска (dc=${domain},ou=mail,o=tehnopark), значение, которое нужно вернуть (mail), описание запроса (также в постфиксной форме, характерной для функциональных языков: (&(objectClass=inetOrgPerson)(mail=${local_part}@${domain}))).
Когда требуется аутентификация на сервере, тогда просто указываем нечто вроде:
${lookup ldap {user="cn=manager,o=tehnopark of innovation,c=RU" pass=secret
ldap:///o=tehnopark%20of%20innovation,c=RU?sn?sub?(cn=foo)}{$value}fail}
Заметьте необходимость замены пробелов на %20,
как того требует стандарт. Более подробно обо всем этом можно узнать на
Итак, собственно конфигурационный файл exim. Кое-где я добавил свои комментарии, чтобы улучшить понимание различных директив.
##########################################################
# Runtime configuration file for Exim #
##########################################################
# Здесь мы определяем макросы, описывающие различные пути
CONFIG_PREFIX=/usr/local/etc/exim
ACL_PREFIX=CONFIG_PREFIX/acls
CERTDIR=CONFIG_PREFIX/certs
# Здесь мы указываем, где находить наш PostgreSQL-сервер, соединение осуществляется через локальный сокет, команда hide
# помогает спрятать эту настройку при вызове exim -bP, когда exim выводит все конфигурационные опции в стандартный вывод.
# Учтите, что сам /usr/local/etc/exim/configure должен иметь владельца root:wheel и иметь права доступа 0600, что отличается
# от того, что принято по умолчанию (0644)
hide pgsql_servers = (/tmp/.s.PGSQL.5432)/users/pgsql/pAsSwOrD
# Тут мы описываем списки доменов Local_domains включает домены, считающиеся локальными, то есть те домены, для которых exim
# делает локальную доставку, для остальных доменов почта доставляется по MX записям в DNS. Обратите внимание на дополнительные
# файлы ACL_PREFIX/localdomains и ACL_PREFIX/hostingdomains, в которых перечислены домены, разделенные переводом строки
# (то есть по одному домену на каждую строку)
domainlist local_domains = unona.test.ru : ACL_PREFIX/localdomains : ACL_PREFIX/hostingdomains