Конфиг exim

Конфигурационный файл взят с версии Exim 4.77. По возможности перевод конфигурационного файла будет поддерживаться в актуальном состоянии.
  1. ####################################################################
  2. #                     Конфигурационный файл Exim                   #
  3. ####################################################################
  4.  
  5.  
  6. # Это стандартный конфигурационный файл, который можно использовать
  7. # для простых конфигураций. Смотрите документацию, чтобы узнать
  8. # какие опции можно использовать в данном файле. Их гораздо больше,
  9. # чем представлено здесь. Документация находится в doc/spec.txt
  10. # в дистрибутиве Exim в обычном текстовом формате. Другие форматы
  11. # (PostScript, Texinfo, HTML, PDF) доступны на ftp. Документацию
  12. # так же можно найти на официальном сайте.
  13.  
  14.  
  15. # Данный файл разделен на несколько частей, все части, кроме первой,
  16. # начинаются с ключевого слова "begin". Пустые строки и строки,
  17. # начинающиеся с символа # игнорируются.
  18.  
  19.  
  20. ####################################################################
  21. #                              Важно знать                         #
  22. ####################################################################
  23. # После изменения конфигурационного файла вы должны послать сигнал #
  24. # HUP демону Exim, чтобы тот перечитал файл. Однако, любой другой  #
  25. # запускаемый процесс Exim, например, процесс запущенный MUA       #
  26. # для отправки сообщения увидит новый конфигурационный файл.       #
  27. #                                                                  #
  28. # Не обязательно посылать сигнал HUP процессу Exim, когда изменяются#
  29. # дополнительные (вспомогательные) файлы подключенные из конфига.  #
  30. # Данные файлы читаются каждый раз, когда это необходимо.          #
  31. #                                                                  #
  32. # Хорошей идеей будет тестирование нового конфигурационного файла  #
  33. # на предмет синтаксических ошибок (например,                      #
  34. # exim -C /config/file.new -bV)                                    #
  35. ####################################################################
  36.  
  37.  
  38.  
  39. ####################################################################
  40. #                    Основные параметры
  41. ####################################################################
  42.  
  43. # Укажите здесь имя своего хоста. Правильно будет указать его в
  44. # формате FQDN. Если данный параметр не задан, то будет использован
  45. # результат вызова функции uname(). В большинстве случаев задавать
  46. # параметр не требуется, так как uname() возвращает верное значение.
  47. # primary_hostname =
  48.  
  49. # В следующих трех параметрах задается два списка доменов и один
  50. # список хостов. На эти списки можно ссылаться далее в
  51. # конфигурационном файле, используя следующий синтаксис
  52. # +local_domains, +relay_to_domains, и +relay_from_hosts.
  53. # Во всех списках элементы разделены двоеточием:
  54. domainlist local_domains = @
  55. domainlist relay_to_domains =
  56. hostlist   relay_from_hosts = 127.0.0.1
  57.  
  58. # Большинство требований к правилам доступа может быть удовлетворено
  59. # заданием вышеуказанных опций. В боевых конфигурациях вам может
  60. # потребоваться изменить ACL,ки, которые находятся далее в этом файле.
  61.  
  62. # В первом параметре указываются ваши локальные домены, например:
  63. #
  64. #   domainlist local_domains = my.first.domain : my.second.domain
  65. #
  66. # Вы можете использовать символ "@", что означает "имя локального хоста",
  67. # как сделано выше в файле. Это имя, которое задается с помощью
  68. # параметра primary_hostname. Если вам не нужны локальные доставки,
  69. # то удалите символ "@". Если вы хотите принимать сообщения с адресом
  70. # назначения в виде "user@[IP]", "user@[192.168.23.44]", то вы можете
  71. # добавить "@[]", как элемент списка локальных доменов. Так же вам
  72. # потребуется раскомментировать параметр "allow_domain_literals" ниже.
  73. # Такое не приветствуется в сегодняшнем интернете.
  74.  
  75. # Во втором параметре указываются домены, которым ваш хост может
  76. # пересылать письма. Если вы не хотите осуществлять пересылку, то
  77. # оставьте значение этого параметра пустым. Однако, если ваш хост
  78. # является резервным или шлюзом для некоторых доменов, то вы
  79. # должны указать их здесь. Например:
  80. #
  81. # domainlist relay_to_domains = *.myco.com : my.friend.org
  82. #
  83. # Это позволяет любому хосту пересылать письма через ваш, указанным
  84. # доменам. Смотрите секцию "Control of relaying" в документации, чтобы
  85. # получить больше информации.
  86.  
  87. # В третьем параметре указываются хосты, которым можно отправлять
  88. # письма в Интернет через ваш хост. Так здесь можно указать список
  89. # локальных сетей, ну и localhost. Например:
  90. #
  91. # hostlist relay_from_hosts = 127.0.0.1 : 192.168.0.0/16
  92. #
  93. # "/16"  - это маска переменной длины (CIDR). Учтите, что вы должны
  94. # включить 127.0.0.1, чтобы разрешить процессам на вашей машине
  95. # отправить письма, используя адрес loopback. 
  96.  
  97. # Эти три параметра могут содержать различные элементы, включая
  98. # wildcard имена, регулярные выражения, а так же данные из других
  99. # источников. За дополнительной информацией обращайтесь к
  100. # документации. Данные списки используются в ACL,ках для проверки
  101. # входящей почты. Имена ACL,ок заданы здесь:
  102.  
  103. acl_smtp_rcpt = acl_check_rcpt
  104. acl_smtp_data = acl_check_data
  105.  
  106. # Вы не должны изменять эти параметры, если не понимаете
  107. # как работают ACL,ки.
  108.  
  109.  
  110. # Если Exim скомпилирован с поддержкой content-scanning, то вы можете
  111. # отправлять входящие сообщения на проверку антивирусу. Для этого вам
  112. # потребуется сделать изменения в двух местах. Первое - здесь, где
  113. # вы определяете интерфейс к сканеру. Тут указан ClamAV; смотрите
  114. # документацию, чтобы узнать, как подключить другие антивирусы.
  115. # Второй место в ACL,ке acl_check_data (смотрите ниже).
  116. # av_scanner = clamd:/tmp/clamd
  117.  
  118.  
  119. # Для проверки на спам, эта опция предоставляет интерфейс к SpamAssassin.
  120. # Так же вам необходимо будет сделать изменения в ACL,ке acl_check_data.
  121. # spamd_address = 127.0.0.1 783
  122.  
  123.  
  124. # Если Exim скомпилирован с поддержкой TLS, то возможно вы захотите
  125. # задать следующие параметры, чтобы Exim позволял клиентам
  126. # устанавливать защищенные соединения. В секции аутентификаторов
  127. # ниже, находятся шаблоны конфигураций для аутентификации
  128. # пользователей открытым текстом. Аутентификация открытым текстом
  129. # будет безопасной, если соединение шифруется.
  130.  
  131. # Разрешить любому клиенту использовать TLS.
  132. # tls_advertise_hosts = *
  133.  
  134. # Где Exim взять TLS сертификат и приватный ключ. Приватный ключ
  135. # не должен быть защищен паролем. Вы можете объединить сертификат
  136. # и приватный ключ в один файл, тогда вам понадобится только первый
  137. # параметр, в другом случае используйте оба параметра.
  138. # tls_certificate = /etc/ssl/exim.crt
  139. # tls_privatekey = /etc/ssl/exim.pem
  140.  
  141. # Для пользователей, которые могут отправить письма откуда угодно,
  142. # вам может понадобиться изменить порты, на которых Exim будет
  143. # принимать подключения. Например, если фаервол в удаленной сети
  144. # блочит 25 порт. Конечно, выделен стандартный порт в таком случае,
  145. # порт 587  (за деталями в RFC 4409). Почтовые клиенты Microsoft
  146. # не могут корректно работать в таком режиме, поэтому (если у вас
  147. # в сети есть такие продукты, то вы можете сделать TLS доступ для
  148. # пользователей).
  149. # daemon_smtp_ports = 25 : 465 : 587
  150. # tls_on_connect_ports = 465
  151.  
  152. # Укажите здесь домен, который будет добавляться к адресатам
  153. # в письмах, если там домен не указан. Домен может быть только один,
  154. # символ "@" писать не нужно. Например, "caesar@rome.example"
  155. # полный адрес, в котором указан пользователь и домен (то есть FQDN). Но
  156. # адрес "caesar" не полный (то есть это не FQDN), а просто имя пользователя.
  157. # По умолчанию не полные адреса принимаются только с локальных хостов.
  158. # Смотрите параметр recipient_unqualified_hosts, если вы хотите разрешить
  159. # принимать и добавлять домен в письмах от удаленных хостов. Если
  160. # этот параметр не задан, то используется значение параметра
  161. # primary_hostname.
  162. # qualify_domain =
  163.  
  164. # Если в письме не задан FQDN получателя (а только логин), то подставить
  165. # в письмо в адрес получателя указанный здесь домен. Если этот параметр
  166. # не задан, то используется значение параметра qualify_domain.
  167. # qualify_recipient =
  168.  
  169. # Раскомментируйте данный параметр, если вы хотите, чтобы Exim
  170. # принимал письма с адресатами вида "user@[10.11.12.13]". Это
  171. # не нарушает RFC, но в наше время такая плюшка ни к чему. Учтите,
  172. # что этот старый формат может использоваться спамерами. Если вам
  173. # действительно необходимо работать с такими письмами, то
  174. # раскомментируйте параметр и смотрите ниже роутер "domain_literal".
  175. # allow_domain_literals
  176.  
  177. # Не использовать указанные здесь идентификаторы для доставки почты.
  178. # Можно использовать имена пользователей, список разделяется двоеточием.
  179. # Попытка использования данных идентификаторов для передачи почты
  180. # будет отражена в логе паники, а доставка будет отложена. Есть еще
  181. # более строгий вариант этого параметра - вшивание в код при сборке
  182. # макроса (или переменной, что там не смотрел) FIXED_NEVER_USERS.
  183. # Список пользователей в FIXED_NEVER_USERS уже никак не изменить
  184. # после сборки Exim,а. Значением по умолчанию для FIXED_NEVER_USERS
  185. # является - "root", но чтобы быть абсолютно уверенным (что пользователь
  186. # root никак не задействуется), значение этого параметра по умолчанию
  187. # тоже "root".
  188.  
  189. # Учтите, что настройки по умолчанию не позволят доставлять почту руту,
  190. # как обычному пользователю. Но это не проблема, так как большинство
  191. # конфигураций имеет алиас, который перенаправляет письма для рута
  192. # на нужный адрес.
  193. never_users = root
  194.  
  195. # Следующий параметр заставляет Exim делать обратный запрос к DNS
  196. # для проверки IP адреса, с которого идет передача писем. Если вы
  197. # считаете, что это пустая трата времени или на это уходит слишком
  198. # много времени, то укажите здесь адреса, для которых нужно делать
  199. # такие запросы или закомментируйте/удалите этот параметр вообще.
  200. host_lookup = *
  201.  
  202. # Следующие параметры заставляют Exim делать обратные запросы (ident)
  203. # для входящих SMTP соединений (RFC 1413). Вы можете указать здесь
  204. # хосты, для которых необходимо делать данные запросы и задать
  205. # таймаут. Если выставить таймаут в 0, то данные запросы делаться
  206. # не будут. Вызовы RFC 1413 не требуют много ресурсов и являются
  207. # хорошим средством для выявления проблем с передаваемой почтой, 
  208. # но могут возникнуть проблемы с некоторыми хостами из-за файерволов.
  209. # Так же может быть, что из-за таймаута Exim не будет знать, что
  210. # соединение закрыто, что вызовет задержки в работе. (Начиная с релиза
  211. # 4.61 таймаут уменьшен до 5 секунд.)
  212. rfc1413_hosts = *
  213. rfc1413_query_timeout = 5s
  214.  
  215. # По умолчанию Exim принимает только почту, в которой адресаты заданы
  216. # верно, то есть в FQDN. Если вы хотите, чтобы Exim работал с почтой
  217. # не имеющей адресатов в FQDN, то укажите здесь хосты с которых
  218. # можно отправлять такие письма. В таком случае, Exim просто добавит
  219. # к адресату значение параметра qualify_domain и/или qualify_recipient.
  220. # sender_unqualified_hosts =
  221. # recipient_unqualified_hosts =
  222.  
  223. # Если вы хотите, чтобы Exim поддерживал хак с процентом для некоторых
  224. # доменов, то раскомментируйте опцию ниже и укажите список доменов. 
  225. # Данный хак позволяет использовать адрес вот такого вида x%y@z (где
  226. # z - один из указанных в этой опции доменов), который будут перенаправлен
  227. # на адрес x@y. Если домен z не из списка, то часть адреса x%y будет
  228. # интерпретирована как есть. В наши дни в использование данного хака
  229. # нет необходимости. Используйте данную фишку, если только она вам
  230. # действительно необходима.
  231. #
  232. # percent_hack_domains =
  233. #
  234. # Если вы включите данный функционал, то не забудьте так же поправить
  235. # правила в секции ACL - уберите проверку символа % в локальной части.
  236.  
  237. # Когда Exim не может доставить рикошет к отправителю, то он
  238. # замораживает его. Есть так же другие обстоятельства, при которых
  239. # Exim может заморозить рикошет. Они остаются в очереди пока
  240. # не истечет заданное здесь время.
  241. #
  242. # Данная опция размораживает рикошет по прошествии 2-х дней,
  243. # далее Exim снова пытается его доставить и игнорирует любые
  244. # ошибки о доставке.
  245. ignore_bounce_errors_after = 2d
  246.  
  247. # Замороженные сообщения удаляются из очереди, когда истечет
  248. # указанное здесь время.
  249. timeout_frozen_after = 7d
  250.  
  251. # По умолчанию, ожидающие сообщения в очереди Exim,а хранятся
  252. # в одной директории, называемой "input", которая находится в Exim
  253. # директории spool. (По умолчанию эта директория задается на этапе
  254. # компиляции и имеет такой путь - /var/spool/exim/.) Exim работает
  255. # быстрее, когда очередь сохраняет небольшой размер, но бывают
  256. # обстоятельства, при которых такое не всегда возможно. Если вы
  257. # раскомментируете параметр ниже, то сообщения будут храниться
  258. # в 62 поддиректориях в директории "input", вместо одной общей.
  259. # Поддиректории именуются 0, 1, ... A, B, ... a, b, ... z. Это хорошо
  260. # тем, что:
  261. # 1) если ваша ОС тормозит, когда в директории много файлов, то
  262. # такой подход поможет не допустить этого.
  263. # 2) Exim может обрабатывать очередь в каждой директории отдельно,
  264. # вместо одной общей, что приведет к увеличению производительности
  265. # при больших размерах очереди.
  266. # split_spool_directory = true
  267.  
  268. # Если вы находитесь в такой части мире, где ASCII не достаточен
  269. # для большей части текста, то вы наверняка знакомы с RFC2047.
  270. # По умолчанию, Exim придерживается спецификации, которая
  271. # делает ограничение в 76 символов в строке. 
  272. #
  273. # check_rfc2047_length = false
  274. #
  275. # Разрабы Exim,а получали много жалоб от российских админов о
  276. # проблемах в работе с включенной опцией, потому что некоторые
  277. # популярные почтовые клиенты имеют баги.
  278.  
  279. # Если вы строго придерживаетесь RFC или ваш почтовик работает
  280. # с системами, которые не дружат 8 битным кодированием, то
  281. # раскомментируйте параметр ниже, чтобы отключить поддержку 
  282. # 8BITMIME.
  283.  
  284. # accept_8bitmime = false
  285.  
  286. #####################################################################
  287. #                        Параметры ACL
  288. #####################################################################
  289.  
  290. begin acl
  291.  
  292. # Списки доступа используются для каждой команды RCPT при получении
  293. # писем. Проверки выполняются по порядку до первого попадания в правило,
  294. # где указано принять или отклонить письмо.
  295.  
  296. acl_check_rcpt:
  297.  
  298.   # Принять, если отправитель - локальный хост (т.е. не через TCP/IP).
  299.   accept  hosts = :
  300.           control = dkim_disable_verify
  301.  
  302.   ###################################################################
  303.   # Следующая секция ACL проверяет локальную часть адреса на предмет
  304.   # содержания символов [@%!/|.(точка)] в правильных местах.
  305.   #
  306.   # Символы кроме точек часто находятся не на своих местах, такое часто
  307.   # делают люди, которые надеются обойти ограничения. Поэтому, несмотря
  308.   # на то, что они допустимы в локальных частях, эти правила блокируют 
  309.   # такие попытки.
  310.   #
  311.   # Пустые компоненты адреса (случай, когда в адресе стоят две точки
  312.   # подряд) запрещены в RFC 2822, но Exim позволяет обойти такое
  313.   # ограничение, потому что они встретились (х/з как тут перевести:
  314.   # ....but Exim allows them because they have been encountered).
  315.   # (Предполагается, что адрес имеет вид
  316.   # "firstinitial.secondinitial.familyname", но что делать тем кто не имеет
  317.   # "secondinitial"). Однако, локальная часть адреса, начинающаяся с
  318.   # точки или содержащая /../ может доставить неприятности, если
  319.   # используется как часть файла (например, для списка рассылки).
  320.   # Такое же замечание справедливо и для локальных частей,
  321.   # которые содержат наклонные черты. Символ переадресации
  322.   # вывода (<, |, >) может также доставить проблемы, если локальная
  323.   # часть легкомысленно включена в командную строку оболочки.
  324.   #
  325.   # В связи с этим для проверки используется два правила. Первое
  326.   # используется для писем направленных для локальных доменов.
  327.   # Строка "domains = +local_domains" реализовывает сказанное:
  328.   # только локальные домены. Правило блокирует локальные части,
  329.   # начинающиеся с точки или содержащие символы @ % ! / или |.
  330.   # Если у вас есть локальные учетки имеющие в названии данные
  331.   # символы, то вам необходимо модифицировать данное правило.
  332.  
  333.   deny    message       = Restricted characters in address
  334.           domains       = +local_domains
  335.           local_parts   = ^[.] : ^.*[@%!/|]
  336.  
  337.   # Второе правило применяется для остальных доменов и оно
  338.   # не такое строгое как предыдущее.
  339.   # Строка "domains = !+local_domains" указывает для каких доменов
  340.   # применять правило. Данное правило позволяет локальным
  341.   # пользователям отправлять письма во внешний мир, где адресаты
  342.   # могут иметь косую или вертикальную черту в локальной части.
  343.   # Так же правило блокирует адреса, локальная часть которых
  344.   # начинается с точки, косой или вертикальной черты, но допускает
  345.   # их использование в любом другом месте локальной части.
  346.   # Локальная часть такого вида - /../ запрещена. Использование
  347.   # символов @ % и ! запрещено, как и в предыдущем правиле.
  348.   # Это сделано, чтобы локальные пользователи (или вирусы на их
  349.   # компьютерах) не могли каким-либо образом осуществить
  350.   # атаку на удаленный хост.
  351.  
  352.   deny    message       = Restricted characters in address
  353.           domains       = !+local_domains
  354.           local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
  355.   ###################################################################
  356.  
  357.   # Принимать письма для пользователя postmaster для любого локального
  358.   # домена независимо от источника и без проверки отправителя.
  359.  
  360.   accept  local_parts   = postmaster
  361.           domains       = +local_domains
  362.  
  363.   # Не принимать письма, если не удалось проверить отправителя.
  364.  
  365.   require verify        = sender
  366.  
  367.   # Принимать письма, которые приходят с хостов, для которых этот хост
  368.   # является релеем. Подразумевается, что эти хосты скорее всего MUA,
  369.   # так что здесь установлен модификатор  control=submission, который
  370.   # заставляет Exim работать в режиме передачи. Это позволит подправить 
  371.   # некоторые ошибки в письме, например, нет заголовка Date. Если этот
  372.   # хост является релеем для других MTA, то вам может понадобиться
  373.   # отключить эту плюшку. Если вы хотите пересылать письма с MTA
  374.   # и в "режиме передачи" с MUA, то вы должны разделить это правило
  375.   # на два и обрабатывать такие письма отдельно.
  376.  
  377.   # Проверка получателя здесь опущена, потому что в большинстве случаев
  378.   # MUA не реагируют на сообщения об ошибках. Если вы пересылаете
  379.   # письма от MTA, то возможно вам понадобится добавить такую проверку.
  380.  
  381.   # Учтите, что размещать такие проверки нужно перед проверками адреса
  382.   # в черных списках, тогда письма будут приниматься с таких хостов,
  383.   # даже если этот хост присутствует в черных списках. Такое доверие
  384.   # связано с тем, что данные хосты являются вашими друзьями и
  385.   # присутствие их в черных списках является недоразумением/ошибкой.
  386.  
  387.   accept  hosts         = +relay_from_hosts
  388.           control       = submission
  389.           control       = dkim_disable_verify
  390.  
  391.   # Принимать сообщение, если оно отправлено клиентом, прошедшим
  392.   # аутентификацию. Опять же, сообщение отправляется с MUA, поэтому
  393.   # проверка получателя опущена и установлен режим передачи.
  394.   # Так же эта проверка делается перед проверками хоста отправителя
  395.   # в черных списках.
  396.  
  397.   accept  authenticated = *
  398.           control       = submission
  399.           control       = dkim_disable_verify
  400.  
  401.   # Запрещаем пересылать письма через нашу машину
  402.   # неизвестным хостам.
  403.  
  404.   require message = relay not permitted
  405.           domains = +local_domains : +relay_to_domains
  406.  
  407.   # Проверять получателя во входящих письмах. Эта правило будет
  408.   # проводить проверку локальной части для локальных доменов, а
  409.   # а для удаленных проверку доменной части. Единственным способом
  410.   # проверять локальную часть для удаленных доменов использовать
  411.   # механизм обратных вызовов (добавить /callout), но сначала
  412.   # прочитайте в документации про этот механизм.
  413.  
  414.   require verify = recipient
  415.  
  416.   ###################################################################
  417.   # По умолчанию проверка хоста в черных списках не производится, потому что
  418.   # имена доменов таких списков очень часто изменяются. Однако, здесь
  419.   # представлено два примера, как можно сделать проверку хоста на предмет
  420.   # наличия его в черных списках. Первое правило шлет таких клиентов, а
  421.   # второе просто выдает предупреждение.
  422.   #
  423.   # deny    message       = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
  424.   #         dnslists      = black.list.example
  425.   #
  426.   # warn    dnslists      = black.list.example
  427.   #         add_header    = X-Warning: $sender_host_address is in a black list at $dnslist_domain
  428.   #         log_message   = found in $dnslist_domain
  429.   ###################################################################
  430.  
  431.   ###################################################################
  432.   # Этот тест закомментирован, потому что подходит не для каждого случая.
  433.   # Если вы включите этот тест, то будет производится проверка
  434.   # Client SMTP Authorization (csa) хоста отправителя. Эта проверка включает
  435.   # в себя просмотр записей SRV в DNS. CSA предложен для внедрения
  436.   # в Интернет в мае 2005. Вы можете добавить дополнительные проверки
  437.   # к этому тесту для того, чтобы не проверять какие-нибудь хосты методом
  438.   # CSA.
  439.   #
  440.   # require verify = csa
  441.   ###################################################################
  442.  
  443.   # Ну и когда письмо прошло все тесты, просто принимаем его.
  444.  
  445.   accept
  446.  
  447.  
  448. # Этот ACL используется после того, как получено тело письма. В этом ACL
  449. # вы можете проверять тело письма или его заголовки, в частности здесь
  450. # можно отправить тело письма на проверку антивирусом или спам сканером.
  451. # Примеры некоторых тестов приведены ниже и закомментированы.
  452. # Без этих тестов данная ACL принимает все сообщения. Если вы хотите
  453. # использовать данные тесты, то Exim должен быть собран с
  454. # соответствующими опциями (WITH_CONTENT_SCAN=yes in Local/Makefile).
  455.  
  456. acl_check_data:
  457.  
  458.   # Блочить письма с вирусами. Чтобы использовать данный тест
  459.   # вы должны задать параметр av_scanner.
  460.   #
  461.   # deny    malware    = *
  462.   #         message    = This message contains a virus ($malware_name).
  463.  
  464.   # Добавить заголовки о набранных очках в спам тестах. Чтобы использовать
  465.   # данный тест вы должны установить SpamAssassin и задать
  466.   # параметр spamd_address.
  467.   #
  468.   # warn    spam       = nobody
  469.   #         add_header = X-Spam_score: $spam_score\n\
  470.   #                      X-Spam_score_int: $spam_score_int\n\
  471.   #                      X-Spam_bar: $spam_bar\n\
  472.   #                      X-Spam_report: $spam_report
  473.  
  474.   # Принять сообщение.
  475.  
  476.   accept
  477.  
  478.  
  479.  
  480. #####################################################################
  481. #                      Параметры  роутеров
  482. #####################################################################
  483. #      Здесь важен порядок, в котором заданы роутеры.
  484. #     Адрес передается по порядку в роутеры до тех пор,
  485. #               пока какой-нибудь не подойдет.
  486. #####################################################################
  487.  
  488. begin routers
  489.  
  490. # Этот роутер направляет почту на удаленные машины через SMTP,
  491. # когда получатель указан в виде IP адреса, например,
  492. # <user@[192.168.35.64]>. В RFC требуется, чтобы почтовик умел
  493. # работать с такими письмами. Однако, в наши дни такие адреса
  494. # практически нигде не используются, разве что только спамерами.
  495. # Поэтому данный роутер по умолчанию закомментирован. Если
  496. # вы его раскомментируете, то вы также должны раскомментировать
  497. # параметр allow_domain_literals, тобы Exim не считал такие адреса
  498. # синтаксически неверными.
  499.  
  500. # domain_literal:
  501. #   driver = ipliteral
  502. #   domains = ! +local_domains
  503. #   transport = remote_smtp
  504.  
  505.  
  506. # Данный роутер отправляет письма, если они не предназначены
  507. # локальным, на удаленные домены. Знак восклицания в записи
  508. # "domains = ! +local_domains" означает отрицание, что можно
  509. # читать как "не".
  510. #
  511. # Любой домен, адрес которого 0.0.0.0 или 127.0.0.0/8 обрабатывается
  512. # так, как будто у него нет DNS записи. Учтите, адрес 0.0.0.0 тоже самое,
  513. # что и 0.0.0.0/32, который означает в большинстве систем, что это
  514. # локальный хост. Если DNS запрос не дал результатов, то адрес
  515. # не направляется в другие роутеры, так как здесь указан параметр
  516. # no_more => вылазит ошибка, что адрес недоступен.
  517.  
  518. dnslookup:
  519.   driver = dnslookup
  520.   domains = ! +local_domains
  521.   transport = remote_smtp
  522.   ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  523.   no_more
  524.  
  525. # Остальные роутеры обрабатывают адреса в локальных доменах,
  526. # которые определены в "domainlist local_domains".
  527.  
  528.  
  529. # Роутер обрабатывает алиасы, ища их в файле с именем
  530. # SYSTEM_ALIASES_FILE. Значение подставляется автоматом
  531. # на этапе сборки. По умолчанию файл  располагается здесь:
  532. # /etc/aliases. Если у вас данный файл располагается в другом
  533. # месте, то вам необходимо указать правильный путь до него
  534. # в параметре "data".
  535. #
  536. ##### NB  Данный файл должен всегда существовать в системе. 
  537. ##### NB  Практически в каждой Unix системе он есть, потому что
  538. ##### NB  используется Sendmail. В наши дни, в некоторых системах
  539. ##### NB  данный файл может отсутствовать. Файл должен
  540. ##### NB  содержать как минимум одну запись - для "postmaster".
  541. #
  542. # Если ваш алис разворачивается в трубу (pipe) или файл,тогда вам
  543. # нужно задать пользователя, под которым будет происходить работа
  544. # с трубой или файлом. Если вам необходимо, то вы можете
  545. # раскомментировать (и изменить) опцию "user" ниже, а так же
  546. # добавить опцию "group". Есть другой способ - указать опцию
  547. # "user" в транспортах.
  548.  
  549. system_aliases:
  550.   driver = redirect
  551.   allow_fail
  552.   allow_defer
  553.   data = ${lookup{$local_part}lsearch{SYSTEM_ALIASES_FILE}}
  554. # user = exim
  555.   file_transport = address_file
  556.   pipe_transport = address_pipe
  557.  
  558.  
  559. # Этот роутер пересылает почту согласно файлу .forward в директории
  560. # пользователя. Если вы хотите фильтровать почту, тогда файл
  561. # .forward должен начинаться со строки "# Exim filter" или "# Sieve filter",
  562. # так же необходимо раскомментировать опцию "allow_filter".
  563.  
  564. # Опция no_verify нужна для того, чтобы пропустить данный роутер,
  565. # когда Exim проверяет адрес. Аналогично, опция no_expn нужна,
  566. # чтобы роутер пропускался, когда Exim обрабатывает команду EXPN.
  567.  
  568. # Если вы хотите, чтобы роутер понимал локальную часть адреса
  569. # с суффиксами (символом "-" или "+") так, как будто их нет, то
  570. # раскомментируйте пару опций local_part_suffix. Например, адрес
  571. # xxxx-foo@your.domain будет воспринят как xxxx@your.domain
  572. # данным роутером. Если вы раскомментируете эти опции, то вам
  573. # нужно будет сделать подобные изменения в роутере localuser
  574. # (так надо, потому что данный роутер не используется при проверке
  575. # существования пользователя).
  576.  
  577. # Опция check_ancestor означает, что если файл .forward генерирует
  578. # адрес, который является предыдущим для этого (то есть обратно
  579. # отправителю), то такое правило будет просто опущено.
  580. # Предотвращает случай, когда есть такие алиасы A -> B, а у B
  581. # B -> A.
  582.  
  583. #  Один из трех транспортов используется при пересылке,
  584. # в зависимости от указанных правил в файле .forward.
  585.  
  586. userforward:
  587.   driver = redirect
  588.   check_local_user
  589. # local_part_suffix = +* : -*
  590. # local_part_suffix_optional
  591.   file = $home/.forward
  592. # allow_filter
  593.   no_verify
  594.   no_expn
  595.   check_ancestor
  596.   file_transport = address_file
  597.   pipe_transport = address_pipe
  598.   reply_transport = address_reply
  599.  
  600.  
  601. # Данный роутер срабатывает, если письмо пришло для локального
  602. # пользователя. Если доставка не удалась, то генерируется
  603. # сообщение об ошибке - "Unknown user".
  604.  
  605. # Если вы хотите, чтобы роутер понимал локальную часть адреса
  606. # с суффиксами (символом "-" или "+") так, как будто их нет, то
  607. # раскомментируйте пару опций local_part_suffix. Например, адрес
  608. # xxxx-foo@your.domain будет воспринят как xxxx@your.domain
  609. # данным роутером.
  610.  
  611. localuser:
  612.   driver = accept
  613.   check_local_user
  614. # local_part_suffix = +* : -*
  615. # local_part_suffix_optional
  616.   transport = local_delivery
  617.   cannot_route_message = Unknown user
  618.  
  619.  
  620.  
  621. #####################################################################
  622. #                        Настройка транспортов
  623. #####################################################################
  624. #                    Порядок транспортов не имеет значения.
  625. #     Только один транспорт отрабатывает при каждой доставке.
  626. #####################################################################
  627.  
  628. # Транспорт используется только после обработки письма роутером.
  629.  
  630. begin transports
  631.  
  632.  
  633. # Этот транспорт используется для доставки писем по SMTP.
  634.  
  635. remote_smtp:
  636.   driver = smtp
  637.  
  638.  
  639. # Этот транспорт используется для доставки писем в ящики локальных
  640. # пользователей в традиционном для BSD формате - mailbox.
  641. # По умолчанию процесс доставки запускается с правами пользователя
  642. # (uid, gid), поэтому необходимо, чтобы был установлен sticky бит
  643. # на директорию /var/mail. В некоторых системых доставка
  644. # осуществляется по другому - вместо sticky бита используется общая
  645. # группа. Закомментированные опции показывают как такое может быть
  646. # реализовано в Exim. 
  647.  
  648. local_delivery:
  649.   driver = appendfile
  650.   file = /var/mail/$local_part
  651.   delivery_date_add
  652.   envelope_to_add
  653.   return_path_add
  654. # group = mail
  655. # mode = 0660
  656.  
  657.  
  658. # Этот транспорт используется при доставке писем, адресаты
  659. # которых были сгенерированы через файл алиасов или .forward.
  660. # Если pipe что-нибудь выводит на стандартный дескриптор вывода,
  661. # то этот вывод используется как сообщение об ошибке
  662. # и направляется отправителю. Если вы хотите, чтобы сообщение
  663. # отправлялось только в случае ошибки, то используйте опцию
  664. # return_fail_output вместо return_output. если оно вам нужно, то
  665. # можете сделать различные транспорты для файла алиасов
  666. # и файла .forward.
  667.  
  668. address_pipe:
  669.   driver = pipe
  670.   return_output
  671.  
  672.  
  673. # Этот транспорт используется для доставки писем в файлы,
  674. # адреса которых были сгенерированы файлом алиасов или
  675. # файлом .forward.
  676.  
  677. address_file:
  678.   driver = appendfile
  679.   delivery_date_add
  680.   envelope_to_add
  681.   return_path_add
  682.  
  683.  
  684. # Транспорт используется для обработки автоответов.
  685.  
  686. address_reply:
  687.   driver = autoreply
  688.  
  689.  
  690.  
  691. ######################################################################
  692. #                   Конфигурация повторных попыток передачи
  693. ######################################################################
  694.  
  695. begin retry
  696.  
  697. # Это единственное правило применяется для всех доменов и для всех типах
  698. # ошибок. Повторные попытки будут происходить каждые 15 минут в течении
  699. # 2 часов. После чего эти интервалы будут увеличены, начиная с 1 часа и 
  700. # увеличивая каждый раз в 1.5 раза до 16 часов. После повторная передача
  701. # будет производиться каждые 6 часов, до тех пор, пока не пройдет 4 дня
  702. # с первой неудачной попытки.
  703.  
  704. # Осторожно: Если вы не сконфигурируете повторную передачу (т.е., если
  705. # этой секции не будет или она будет пустой), то Exim не будет делать
  706. # повторных попыток передачи вообще. Поэтому, не удаляйте это правило,
  707. # если в этом нет необходимости.
  708.  
  709. # Address or Domain    Error       Retries
  710. # -----------------    -----       -------
  711.  
  712. *                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h
  713.  
  714.  
  715.  
  716. ######################################################################
  717. #                      Параметры перезаписи
  718. ######################################################################
  719.  
  720. # There are no rewriting specifications in this default configuration file.
  721.  
  722. begin rewrite
  723.  
  724.  
  725.  
  726. ######################################################################
  727. #                   Параметры аутентификации
  728. ######################################################################
  729.  
  730. # Следующие аутентификаторы поддерживают аутентификацию открытым
  731. # текстом, используя стандартные механизмы PLAIN и LOGIN. Данные
  732. # механизмы поддерживает большинство почтовых клиентов.
  733. #
  734. # Аутентификаторы не настроены до конца, поэтому вам необходимо
  735. # задать параметр server_condition, чтобы Exim мог проверять
  736. # переданные учетные данные. 
  737. #
  738. # По  умолчанию в правиле RCPT ACL есть проверка на предмет
  739. # зареганого пользователя и если он прошел его, то письмо будет принято
  740. # независимо от того, окуда оно будет отправляться.
  741.  
  742. begin authenticators
  743.  
  744. # PLAIN метод. Клиент отправляет идентификатор сессии (который тут
  745. # не используется), логин и пароль. После, доступ к логину и паролю
  746. # можно получить через переменные $auth2 и $auth3 и проверить
  747. # их корректность.
  748.  
  749. #PLAIN:
  750. #  driver                     = plaintext
  751. #  server_set_id              = $auth2
  752. #  server_prompts             = :
  753. #  server_condition           = Authentication is not yet configured
  754. #  server_advertise_condition = ${if def:tls_cipher }
  755.  
  756. # LOGIN метод. Здесь нет идентификатора сессии, поэтому логин
  757. # и пароль доступны через переменные $auth1 и $auth2.
  758.  
  759. #LOGIN:
  760. #  driver                     = plaintext
  761. #  server_set_id              = $auth1
  762. #  server_prompts             = <| Username: | Password:
  763. #  server_condition           = Authentication is not yet configured
  764. #  server_advertise_condition = ${if def:tls_cipher }
  765.  
  766.  
  767. ######################################################################
  768. #                   Конфигурация local_scan()
  769. ######################################################################
  770.  
  771. # Если вы собрали Exim с поддержкой функции local_scan(), которая
  772. # содержит таблицы для приватных опций, то здесь вы можете указать их.
  773. # Не забудьте раскомментировать строку с "begin". По умолчанию
  774. # закомментирована, потому что вылезет ошибка, если Exim собран
  775. # без данной плюшки.
  776.  
  777. # begin local_scan
  778.  
  779.  
  780. # Конец конфигурационного файла