Конфиг 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 адреса, например, # . В 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 # Конец конфигурационного файла
Яндекс.Метрика