Конфигурационный файл взят с версии 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
- # Конец конфигурационного файла
Ссылка на обсуждение