Конфиг exim

Конфигурационный файл взят с версии 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 адреса, например,
# <user@[192.168.35.64]>. В 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


# Конец конфигурационного файла
Яндекс.Метрика