Конфигурационный файл взят с версии Exim 4.77. По возможности перевод конфигурационного файла будет поддерживаться в актуальном состоянии.
####################################################################
# Конфигурационный файл Exim #
####################################################################
# Это стандартный конфигурационный файл, который можно использовать
# для простых конфигураций. Смотрите документацию, чтобы узнать
# какие опции можно использовать в данном файле. Их гораздо больше,
# чем представлено здесь. Документация находится в doc/spec.txt
# в дистрибутиве Exim в обычном текстовом формате. Другие форматы
# (PostScript, Texinfo, HTML, PDF) доступны на ftp. Документацию
# так же можно найти на официальном сайте.
# Данный файл разделен на несколько частей, все части, кроме первой,
# начинаются с ключевого слова "begin". Пустые строки и строки,
# начинающиеся с символа # игнорируются.
####################################################################
# Важно знать #
####################################################################
# После изменения конфигурационного файла вы должны послать сигнал #
# HUP демону Exim, чтобы тот перечитал файл. Однако, любой другой #
# запускаемый процесс Exim, например, процесс запущенный MUA #
# для отправки сообщения увидит новый конфигурационный файл. #
# #
# Не обязательно посылать сигнал HUP процессу Exim, когда изменяются#
# дополнительные (вспомогательные) файлы подключенные из конфига. #
# Данные файлы читаются каждый раз, когда это необходимо. #
# #
# Хорошей идеей будет тестирование нового конфигурационного файла #
# на предмет синтаксических ошибок (например, #
# exim -C /config/file.new -bV) #
####################################################################
####################################################################
# Основные параметры
####################################################################
# Укажите здесь имя своего хоста. Правильно будет указать его в
# формате FQDN. Если данный параметр не задан, то будет использован
# результат вызова функции uname(). В большинстве случаев задавать
# параметр не требуется, так как uname() возвращает верное значение.
# primary_hostname =
# В следующих трех параметрах задается два списка доменов и один
# список хостов. На эти списки можно ссылаться далее в
# конфигурационном файле, используя следующий синтаксис
# +local_domains, +relay_to_domains, и +relay_from_hosts.
# Во всех списках элементы разделены двоеточием:
domainlist local_domains = @
domainlist relay_to_domains =
hostlist relay_from_hosts = 127.0.0.1
# Большинство требований к правилам доступа может быть удовлетворено
# заданием вышеуказанных опций. В боевых конфигурациях вам может
# потребоваться изменить ACL,ки, которые находятся далее в этом файле.
# В первом параметре указываются ваши локальные домены, например:
#
# domainlist local_domains = my.first.domain : my.second.domain
#
# Вы можете использовать символ "@", что означает "имя локального хоста",
# как сделано выше в файле. Это имя, которое задается с помощью
# параметра primary_hostname. Если вам не нужны локальные доставки,
# то удалите символ "@". Если вы хотите принимать сообщения с адресом
# назначения в виде "user@[IP]", "user@[192.168.23.44]", то вы можете
# добавить "@[]", как элемент списка локальных доменов. Так же вам
# потребуется раскомментировать параметр "allow_domain_literals" ниже.
# Такое не приветствуется в сегодняшнем интернете.
# Во втором параметре указываются домены, которым ваш хост может
# пересылать письма. Если вы не хотите осуществлять пересылку, то
# оставьте значение этого параметра пустым. Однако, если ваш хост
# является резервным или шлюзом для некоторых доменов, то вы
# должны указать их здесь. Например:
#
# domainlist relay_to_domains = *.myco.com : my.friend.org
#
# Это позволяет любому хосту пересылать письма через ваш, указанным
# доменам. Смотрите секцию "Control of relaying" в документации, чтобы
# получить больше информации.
# В третьем параметре указываются хосты, которым можно отправлять
# письма в Интернет через ваш хост. Так здесь можно указать список
# локальных сетей, ну и localhost. Например:
#
# hostlist relay_from_hosts = 127.0.0.1 : 192.168.0.0/16
#
# "/16" - это маска переменной длины (CIDR). Учтите, что вы должны
# включить 127.0.0.1, чтобы разрешить процессам на вашей машине
# отправить письма, используя адрес loopback.
# Эти три параметра могут содержать различные элементы, включая
# wildcard имена, регулярные выражения, а так же данные из других
# источников. За дополнительной информацией обращайтесь к
# документации. Данные списки используются в ACL,ках для проверки
# входящей почты. Имена ACL,ок заданы здесь:
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
# Вы не должны изменять эти параметры, если не понимаете
# как работают ACL,ки.
# Если Exim скомпилирован с поддержкой content-scanning, то вы можете
# отправлять входящие сообщения на проверку антивирусу. Для этого вам
# потребуется сделать изменения в двух местах. Первое - здесь, где
# вы определяете интерфейс к сканеру. Тут указан ClamAV; смотрите
# документацию, чтобы узнать, как подключить другие антивирусы.
# Второй место в ACL,ке acl_check_data (смотрите ниже).
# av_scanner = clamd:/tmp/clamd
# Для проверки на спам, эта опция предоставляет интерфейс к SpamAssassin.
# Так же вам необходимо будет сделать изменения в ACL,ке acl_check_data.
# spamd_address = 127.0.0.1 783
# Если Exim скомпилирован с поддержкой TLS, то возможно вы захотите
# задать следующие параметры, чтобы Exim позволял клиентам
# устанавливать защищенные соединения. В секции аутентификаторов
# ниже, находятся шаблоны конфигураций для аутентификации
# пользователей открытым текстом. Аутентификация открытым текстом
# будет безопасной, если соединение шифруется.
# Разрешить любому клиенту использовать TLS.
# tls_advertise_hosts = *
# Где Exim взять TLS сертификат и приватный ключ. Приватный ключ
# не должен быть защищен паролем. Вы можете объединить сертификат
# и приватный ключ в один файл, тогда вам понадобится только первый
# параметр, в другом случае используйте оба параметра.
# tls_certificate = /etc/ssl/exim.crt
# tls_privatekey = /etc/ssl/exim.pem
# Для пользователей, которые могут отправить письма откуда угодно,
# вам может понадобиться изменить порты, на которых Exim будет
# принимать подключения. Например, если фаервол в удаленной сети
# блочит 25 порт. Конечно, выделен стандартный порт в таком случае,
# порт 587 (за деталями в RFC 4409). Почтовые клиенты Microsoft
# не могут корректно работать в таком режиме, поэтому (если у вас
# в сети есть такие продукты, то вы можете сделать TLS доступ для
# пользователей).
# daemon_smtp_ports = 25 : 465 : 587
# tls_on_connect_ports = 465
# Укажите здесь домен, который будет добавляться к адресатам
# в письмах, если там домен не указан. Домен может быть только один,
# символ "@" писать не нужно. Например, "caesar@rome.example"
# полный адрес, в котором указан пользователь и домен (то есть FQDN). Но
# адрес "caesar" не полный (то есть это не FQDN), а просто имя пользователя.
# По умолчанию не полные адреса принимаются только с локальных хостов.
# Смотрите параметр recipient_unqualified_hosts, если вы хотите разрешить
# принимать и добавлять домен в письмах от удаленных хостов. Если
# этот параметр не задан, то используется значение параметра
# primary_hostname.
# qualify_domain =
# Если в письме не задан FQDN получателя (а только логин), то подставить
# в письмо в адрес получателя указанный здесь домен. Если этот параметр
# не задан, то используется значение параметра qualify_domain.
# qualify_recipient =
# Раскомментируйте данный параметр, если вы хотите, чтобы Exim
# принимал письма с адресатами вида "user@[10.11.12.13]". Это
# не нарушает RFC, но в наше время такая плюшка ни к чему. Учтите,
# что этот старый формат может использоваться спамерами. Если вам
# действительно необходимо работать с такими письмами, то
# раскомментируйте параметр и смотрите ниже роутер "domain_literal".
# allow_domain_literals
# Не использовать указанные здесь идентификаторы для доставки почты.
# Можно использовать имена пользователей, список разделяется двоеточием.
# Попытка использования данных идентификаторов для передачи почты
# будет отражена в логе паники, а доставка будет отложена. Есть еще
# более строгий вариант этого параметра - вшивание в код при сборке
# макроса (или переменной, что там не смотрел) FIXED_NEVER_USERS.
# Список пользователей в FIXED_NEVER_USERS уже никак не изменить
# после сборки Exim,а. Значением по умолчанию для FIXED_NEVER_USERS
# является - "root", но чтобы быть абсолютно уверенным (что пользователь
# root никак не задействуется), значение этого параметра по умолчанию
# тоже "root".
# Учтите, что настройки по умолчанию не позволят доставлять почту руту,
# как обычному пользователю. Но это не проблема, так как большинство
# конфигураций имеет алиас, который перенаправляет письма для рута
# на нужный адрес.
never_users = root
# Следующий параметр заставляет Exim делать обратный запрос к DNS
# для проверки IP адреса, с которого идет передача писем. Если вы
# считаете, что это пустая трата времени или на это уходит слишком
# много времени, то укажите здесь адреса, для которых нужно делать
# такие запросы или закомментируйте/удалите этот параметр вообще.
host_lookup = *
# Следующие параметры заставляют Exim делать обратные запросы (ident)
# для входящих SMTP соединений (RFC 1413). Вы можете указать здесь
# хосты, для которых необходимо делать данные запросы и задать
# таймаут. Если выставить таймаут в 0, то данные запросы делаться
# не будут. Вызовы RFC 1413 не требуют много ресурсов и являются
# хорошим средством для выявления проблем с передаваемой почтой,
# но могут возникнуть проблемы с некоторыми хостами из-за файерволов.
# Так же может быть, что из-за таймаута Exim не будет знать, что
# соединение закрыто, что вызовет задержки в работе. (Начиная с релиза
# 4.61 таймаут уменьшен до 5 секунд.)
rfc1413_hosts = *
rfc1413_query_timeout = 5s
# По умолчанию Exim принимает только почту, в которой адресаты заданы
# верно, то есть в FQDN. Если вы хотите, чтобы Exim работал с почтой
# не имеющей адресатов в FQDN, то укажите здесь хосты с которых
# можно отправлять такие письма. В таком случае, Exim просто добавит
# к адресату значение параметра qualify_domain и/или qualify_recipient.
# sender_unqualified_hosts =
# recipient_unqualified_hosts =
# Если вы хотите, чтобы Exim поддерживал хак с процентом для некоторых
# доменов, то раскомментируйте опцию ниже и укажите список доменов.
# Данный хак позволяет использовать адрес вот такого вида x%y@z (где
# z - один из указанных в этой опции доменов), который будут перенаправлен
# на адрес x@y. Если домен z не из списка, то часть адреса x%y будет
# интерпретирована как есть. В наши дни в использование данного хака
# нет необходимости. Используйте данную фишку, если только она вам
# действительно необходима.
#
# percent_hack_domains =
#
# Если вы включите данный функционал, то не забудьте так же поправить
# правила в секции ACL - уберите проверку символа % в локальной части.
# Когда Exim не может доставить рикошет к отправителю, то он
# замораживает его. Есть так же другие обстоятельства, при которых
# Exim может заморозить рикошет. Они остаются в очереди пока
# не истечет заданное здесь время.
#
# Данная опция размораживает рикошет по прошествии 2-х дней,
# далее Exim снова пытается его доставить и игнорирует любые
# ошибки о доставке.
ignore_bounce_errors_after = 2d
# Замороженные сообщения удаляются из очереди, когда истечет
# указанное здесь время.
timeout_frozen_after = 7d
# По умолчанию, ожидающие сообщения в очереди Exim,а хранятся
# в одной директории, называемой "input", которая находится в Exim
# директории spool. (По умолчанию эта директория задается на этапе
# компиляции и имеет такой путь - /var/spool/exim/.) Exim работает
# быстрее, когда очередь сохраняет небольшой размер, но бывают
# обстоятельства, при которых такое не всегда возможно. Если вы
# раскомментируете параметр ниже, то сообщения будут храниться
# в 62 поддиректориях в директории "input", вместо одной общей.
# Поддиректории именуются 0, 1, ... A, B, ... a, b, ... z. Это хорошо
# тем, что:
# 1) если ваша ОС тормозит, когда в директории много файлов, то
# такой подход поможет не допустить этого.
# 2) Exim может обрабатывать очередь в каждой директории отдельно,
# вместо одной общей, что приведет к увеличению производительности
# при больших размерах очереди.
# split_spool_directory = true
# Если вы находитесь в такой части мире, где ASCII не достаточен
# для большей части текста, то вы наверняка знакомы с RFC2047.
# По умолчанию, Exim придерживается спецификации, которая
# делает ограничение в 76 символов в строке.
#
# check_rfc2047_length = false
#
# Разрабы Exim,а получали много жалоб от российских админов о
# проблемах в работе с включенной опцией, потому что некоторые
# популярные почтовые клиенты имеют баги.
# Если вы строго придерживаетесь RFC или ваш почтовик работает
# с системами, которые не дружат 8 битным кодированием, то
# раскомментируйте параметр ниже, чтобы отключить поддержку
# 8BITMIME.
# accept_8bitmime = false
#####################################################################
# Параметры ACL
#####################################################################
begin acl
# Списки доступа используются для каждой команды RCPT при получении
# писем. Проверки выполняются по порядку до первого попадания в правило,
# где указано принять или отклонить письмо.
acl_check_rcpt:
# Принять, если отправитель - локальный хост (т.е. не через TCP/IP).
accept hosts = :
control = dkim_disable_verify
###################################################################
# Следующая секция ACL проверяет локальную часть адреса на предмет
# содержания символов [@%!/|.(точка)] в правильных местах.
#
# Символы кроме точек часто находятся не на своих местах, такое часто
# делают люди, которые надеются обойти ограничения. Поэтому, несмотря
# на то, что они допустимы в локальных частях, эти правила блокируют
# такие попытки.
#
# Пустые компоненты адреса (случай, когда в адресе стоят две точки
# подряд) запрещены в RFC 2822, но Exim позволяет обойти такое
# ограничение, потому что они встретились (х/з как тут перевести:
# ....but Exim allows them because they have been encountered).
# (Предполагается, что адрес имеет вид
# "firstinitial.secondinitial.familyname", но что делать тем кто не имеет
# "secondinitial"). Однако, локальная часть адреса, начинающаяся с
# точки или содержащая /../ может доставить неприятности, если
# используется как часть файла (например, для списка рассылки).
# Такое же замечание справедливо и для локальных частей,
# которые содержат наклонные черты. Символ переадресации
# вывода (, |, >) может также доставить проблемы, если локальная
# часть легкомысленно включена в командную строку оболочки.
#
# В связи с этим для проверки используется два правила. Первое
# используется для писем направленных для локальных доменов.
# Строка "domains = +local_domains" реализовывает сказанное:
# только локальные домены. Правило блокирует локальные части,
# начинающиеся с точки или содержащие символы @ % ! / или |.
# Если у вас есть локальные учетки имеющие в названии данные
# символы, то вам необходимо модифицировать данное правило.
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
# Второе правило применяется для остальных доменов и оно
# не такое строгое как предыдущее.
# Строка "domains = !+local_domains" указывает для каких доменов
# применять правило. Данное правило позволяет локальным
# пользователям отправлять письма во внешний мир, где адресаты
# могут иметь косую или вертикальную черту в локальной части.
# Так же правило блокирует адреса, локальная часть которых
# начинается с точки, косой или вертикальной черты, но допускает
# их использование в любом другом месте локальной части.
# Локальная часть такого вида - /../ запрещена. Использование
# символов @ % и ! запрещено, как и в предыдущем правиле.
# Это сделано, чтобы локальные пользователи (или вирусы на их
# компьютерах) не могли каким-либо образом осуществить
# атаку на удаленный хост.
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
###################################################################
# Принимать письма для пользователя postmaster для любого локального
# домена независимо от источника и без проверки отправителя.
accept local_parts = postmaster
domains = +local_domains
# Не принимать письма, если не удалось проверить отправителя.
require verify = sender
# Принимать письма, которые приходят с хостов, для которых этот хост
# является релеем. Подразумевается, что эти хосты скорее всего MUA,
# так что здесь установлен модификатор control=submission, который
# заставляет Exim работать в режиме передачи. Это позволит подправить
# некоторые ошибки в письме, например, нет заголовка Date. Если этот
# хост является релеем для других MTA, то вам может понадобиться
# отключить эту плюшку. Если вы хотите пересылать письма с MTA
# и в "режиме передачи" с MUA, то вы должны разделить это правило
# на два и обрабатывать такие письма отдельно.
# Проверка получателя здесь опущена, потому что в большинстве случаев
# MUA не реагируют на сообщения об ошибках. Если вы пересылаете
# письма от MTA, то возможно вам понадобится добавить такую проверку.
# Учтите, что размещать такие проверки нужно перед проверками адреса
# в черных списках, тогда письма будут приниматься с таких хостов,
# даже если этот хост присутствует в черных списках. Такое доверие
# связано с тем, что данные хосты являются вашими друзьями и
# присутствие их в черных списках является недоразумением/ошибкой.
accept hosts = +relay_from_hosts
control = submission
control = dkim_disable_verify
# Принимать сообщение, если оно отправлено клиентом, прошедшим
# аутентификацию. Опять же, сообщение отправляется с MUA, поэтому
# проверка получателя опущена и установлен режим передачи.
# Так же эта проверка делается перед проверками хоста отправителя
# в черных списках.
accept authenticated = *
control = submission
control = dkim_disable_verify
# Запрещаем пересылать письма через нашу машину
# неизвестным хостам.
require message = relay not permitted
domains = +local_domains : +relay_to_domains
# Проверять получателя во входящих письмах. Эта правило будет
# проводить проверку локальной части для локальных доменов, а
# а для удаленных проверку доменной части. Единственным способом
# проверять локальную часть для удаленных доменов использовать
# механизм обратных вызовов (добавить /callout), но сначала
# прочитайте в документации про этот механизм.
require verify = recipient
###################################################################
# По умолчанию проверка хоста в черных списках не производится, потому что
# имена доменов таких списков очень часто изменяются. Однако, здесь
# представлено два примера, как можно сделать проверку хоста на предмет
# наличия его в черных списках. Первое правило шлет таких клиентов, а
# второе просто выдает предупреждение.
#
# deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
# dnslists = black.list.example
#
# warn dnslists = black.list.example
# add_header = X-Warning: $sender_host_address is in a black list at $dnslist_domain
# log_message = found in $dnslist_domain
###################################################################
###################################################################
# Этот тест закомментирован, потому что подходит не для каждого случая.
# Если вы включите этот тест, то будет производится проверка
# Client SMTP Authorization (csa) хоста отправителя. Эта проверка включает
# в себя просмотр записей SRV в DNS. CSA предложен для внедрения
# в Интернет в мае 2005. Вы можете добавить дополнительные проверки
# к этому тесту для того, чтобы не проверять какие-нибудь хосты методом
# CSA.
#
# require verify = csa
###################################################################
# Ну и когда письмо прошло все тесты, просто принимаем его.
accept
# Этот ACL используется после того, как получено тело письма. В этом ACL
# вы можете проверять тело письма или его заголовки, в частности здесь
# можно отправить тело письма на проверку антивирусом или спам сканером.
# Примеры некоторых тестов приведены ниже и закомментированы.
# Без этих тестов данная ACL принимает все сообщения. Если вы хотите
# использовать данные тесты, то Exim должен быть собран с
# соответствующими опциями (WITH_CONTENT_SCAN=yes in Local/Makefile).
acl_check_data:
# Блочить письма с вирусами. Чтобы использовать данный тест
# вы должны задать параметр av_scanner.
#
# deny malware = *
# message = This message contains a virus ($malware_name).
# Добавить заголовки о набранных очках в спам тестах. Чтобы использовать
# данный тест вы должны установить SpamAssassin и задать
# параметр spamd_address.
#
# warn spam = nobody
# add_header = X-Spam_score: $spam_score\n\
# X-Spam_score_int: $spam_score_int\n\
# X-Spam_bar: $spam_bar\n\
# X-Spam_report: $spam_report
# Принять сообщение.
accept
#####################################################################
# Параметры роутеров
#####################################################################
# Здесь важен порядок, в котором заданы роутеры.
# Адрес передается по порядку в роутеры до тех пор,
# пока какой-нибудь не подойдет.
#####################################################################
begin routers
# Этот роутер направляет почту на удаленные машины через SMTP,
# когда получатель указан в виде IP адреса, например,
# . В RFC требуется, чтобы почтовик умел
# работать с такими письмами. Однако, в наши дни такие адреса
# практически нигде не используются, разве что только спамерами.
# Поэтому данный роутер по умолчанию закомментирован. Если
# вы его раскомментируете, то вы также должны раскомментировать
# параметр allow_domain_literals, тобы Exim не считал такие адреса
# синтаксически неверными.
# domain_literal:
# driver = ipliteral
# domains = ! +local_domains
# transport = remote_smtp
# Данный роутер отправляет письма, если они не предназначены
# локальным, на удаленные домены. Знак восклицания в записи
# "domains = ! +local_domains" означает отрицание, что можно
# читать как "не".
#
# Любой домен, адрес которого 0.0.0.0 или 127.0.0.0/8 обрабатывается
# так, как будто у него нет DNS записи. Учтите, адрес 0.0.0.0 тоже самое,
# что и 0.0.0.0/32, который означает в большинстве систем, что это
# локальный хост. Если DNS запрос не дал результатов, то адрес
# не направляется в другие роутеры, так как здесь указан параметр
# no_more => вылазит ошибка, что адрес недоступен.
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
# Остальные роутеры обрабатывают адреса в локальных доменах,
# которые определены в "domainlist local_domains".
# Роутер обрабатывает алиасы, ища их в файле с именем
# SYSTEM_ALIASES_FILE. Значение подставляется автоматом
# на этапе сборки. По умолчанию файл располагается здесь:
# /etc/aliases. Если у вас данный файл располагается в другом
# месте, то вам необходимо указать правильный путь до него
# в параметре "data".
#
##### NB Данный файл должен всегда существовать в системе.
##### NB Практически в каждой Unix системе он есть, потому что
##### NB используется Sendmail. В наши дни, в некоторых системах
##### NB данный файл может отсутствовать. Файл должен
##### NB содержать как минимум одну запись - для "postmaster".
#
# Если ваш алис разворачивается в трубу (pipe) или файл,тогда вам
# нужно задать пользователя, под которым будет происходить работа
# с трубой или файлом. Если вам необходимо, то вы можете
# раскомментировать (и изменить) опцию "user" ниже, а так же
# добавить опцию "group". Есть другой способ - указать опцию
# "user" в транспортах.
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{SYSTEM_ALIASES_FILE}}
# user = exim
file_transport = address_file
pipe_transport = address_pipe
# Этот роутер пересылает почту согласно файлу .forward в директории
# пользователя. Если вы хотите фильтровать почту, тогда файл
# .forward должен начинаться со строки "# Exim filter" или "# Sieve filter",
# так же необходимо раскомментировать опцию "allow_filter".
# Опция no_verify нужна для того, чтобы пропустить данный роутер,
# когда Exim проверяет адрес. Аналогично, опция no_expn нужна,
# чтобы роутер пропускался, когда Exim обрабатывает команду EXPN.
# Если вы хотите, чтобы роутер понимал локальную часть адреса
# с суффиксами (символом "-" или "+") так, как будто их нет, то
# раскомментируйте пару опций local_part_suffix. Например, адрес
# xxxx-foo@your.domain будет воспринят как xxxx@your.domain
# данным роутером. Если вы раскомментируете эти опции, то вам
# нужно будет сделать подобные изменения в роутере localuser
# (так надо, потому что данный роутер не используется при проверке
# существования пользователя).
# Опция check_ancestor означает, что если файл .forward генерирует
# адрес, который является предыдущим для этого (то есть обратно
# отправителю), то такое правило будет просто опущено.
# Предотвращает случай, когда есть такие алиасы A -> B, а у B
# B -> A.
# Один из трех транспортов используется при пересылке,
# в зависимости от указанных правил в файле .forward.
userforward:
driver = redirect
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
file = $home/.forward
# allow_filter
no_verify
no_expn
check_ancestor
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
# Данный роутер срабатывает, если письмо пришло для локального
# пользователя. Если доставка не удалась, то генерируется
# сообщение об ошибке - "Unknown user".
# Если вы хотите, чтобы роутер понимал локальную часть адреса
# с суффиксами (символом "-" или "+") так, как будто их нет, то
# раскомментируйте пару опций local_part_suffix. Например, адрес
# xxxx-foo@your.domain будет воспринят как xxxx@your.domain
# данным роутером.
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery
cannot_route_message = Unknown user
#####################################################################
# Настройка транспортов
#####################################################################
# Порядок транспортов не имеет значения.
# Только один транспорт отрабатывает при каждой доставке.
#####################################################################
# Транспорт используется только после обработки письма роутером.
begin transports
# Этот транспорт используется для доставки писем по SMTP.
remote_smtp:
driver = smtp
# Этот транспорт используется для доставки писем в ящики локальных
# пользователей в традиционном для BSD формате - mailbox.
# По умолчанию процесс доставки запускается с правами пользователя
# (uid, gid), поэтому необходимо, чтобы был установлен sticky бит
# на директорию /var/mail. В некоторых системых доставка
# осуществляется по другому - вместо sticky бита используется общая
# группа. Закомментированные опции показывают как такое может быть
# реализовано в Exim.
local_delivery:
driver = appendfile
file = /var/mail/$local_part
delivery_date_add
envelope_to_add
return_path_add
# group = mail
# mode = 0660
# Этот транспорт используется при доставке писем, адресаты
# которых были сгенерированы через файл алиасов или .forward.
# Если pipe что-нибудь выводит на стандартный дескриптор вывода,
# то этот вывод используется как сообщение об ошибке
# и направляется отправителю. Если вы хотите, чтобы сообщение
# отправлялось только в случае ошибки, то используйте опцию
# return_fail_output вместо return_output. если оно вам нужно, то
# можете сделать различные транспорты для файла алиасов
# и файла .forward.
address_pipe:
driver = pipe
return_output
# Этот транспорт используется для доставки писем в файлы,
# адреса которых были сгенерированы файлом алиасов или
# файлом .forward.
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
# Транспорт используется для обработки автоответов.
address_reply:
driver = autoreply
######################################################################
# Конфигурация повторных попыток передачи
######################################################################
begin retry
# Это единственное правило применяется для всех доменов и для всех типах
# ошибок. Повторные попытки будут происходить каждые 15 минут в течении
# 2 часов. После чего эти интервалы будут увеличены, начиная с 1 часа и
# увеличивая каждый раз в 1.5 раза до 16 часов. После повторная передача
# будет производиться каждые 6 часов, до тех пор, пока не пройдет 4 дня
# с первой неудачной попытки.
# Осторожно: Если вы не сконфигурируете повторную передачу (т.е., если
# этой секции не будет или она будет пустой), то Exim не будет делать
# повторных попыток передачи вообще. Поэтому, не удаляйте это правило,
# если в этом нет необходимости.
# Address or Domain Error Retries
# ----------------- ----- -------
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
######################################################################
# Параметры перезаписи
######################################################################
# There are no rewriting specifications in this default configuration file.
begin rewrite
######################################################################
# Параметры аутентификации
######################################################################
# Следующие аутентификаторы поддерживают аутентификацию открытым
# текстом, используя стандартные механизмы PLAIN и LOGIN. Данные
# механизмы поддерживает большинство почтовых клиентов.
#
# Аутентификаторы не настроены до конца, поэтому вам необходимо
# задать параметр server_condition, чтобы Exim мог проверять
# переданные учетные данные.
#
# По умолчанию в правиле RCPT ACL есть проверка на предмет
# зареганого пользователя и если он прошел его, то письмо будет принято
# независимо от того, окуда оно будет отправляться.
begin authenticators
# PLAIN метод. Клиент отправляет идентификатор сессии (который тут
# не используется), логин и пароль. После, доступ к логину и паролю
# можно получить через переменные $auth2 и $auth3 и проверить
# их корректность.
#PLAIN:
# driver = plaintext
# server_set_id = $auth2
# server_prompts = :
# server_condition = Authentication is not yet configured
# server_advertise_condition = ${if def:tls_cipher }
# LOGIN метод. Здесь нет идентификатора сессии, поэтому логин
# и пароль доступны через переменные $auth1 и $auth2.
#LOGIN:
# driver = plaintext
# server_set_id = $auth1
# server_prompts = | Username: | Password:
# server_condition = Authentication is not yet configured
# server_advertise_condition = ${if def:tls_cipher }
######################################################################
# Конфигурация local_scan()
######################################################################
# Если вы собрали Exim с поддержкой функции local_scan(), которая
# содержит таблицы для приватных опций, то здесь вы можете указать их.
# Не забудьте раскомментировать строку с "begin". По умолчанию
# закомментирована, потому что вылезет ошибка, если Exim собран
# без данной плюшки.
# begin local_scan
# Конец конфигурационного файла
Ссылка на обсуждение
Последние комментарии
Может кто…