Перевод спецификации по MTA Exim

Автор перевода: Aleksey L Keda (lissyara)
Оригинал: http://www.lissyara.su/?id=1200


Philip Hazel
Copyright ╘ 2006 University of Cambridge


Revision 4.62 27 April 2006 PH


--------------------------------------------------------------------------------

Содержание

1. Введение

  • 1.1. Документация exim
  • 1.2. FTP и WEB сайты
  • 1.3. Листы рассылки
  • 1.4. Курсы exim
  • 1.5. Сообщения об ошибках
  • 1.6. Где найти дистрибутив exim
  • 1.7. Список пожеланий
  • 1.8. Материалы содействия
  • 1.9. Ограничения
  • 1.10. Рабочая (выполняемая) конфигурация
  • 1.11. Интерфейс вызова
  • 1.12. Терминология
    2. Включенный код
    3. Как еxim получает и доставляет почту
  • 3.1. Полная философия
  • 3.2. Управление политиками
  • 3.3. Пользовательские фильтры
  • 3.4. Идентификация сообщений
  • 3.5. Получение почты
  • 3.6. Обработка входящих сообщений
  • 3.7. Жизнь сообщения
  • 3.8. Обработка адреса для доставки
  • 3.9. Обработка адреса для проверки
  • 3.10. Работа отдельного роутера
  • 3.11. Двойные адреса
  • 3.12. Предварительные условия роутера
  • 3.13. Доставка в деталях
  • 3.14. Механизм повтора
  • 3.15. Временные ошибки доставки
  • 3.16. Постоянные ошибки доставки
  • 3.17. Сбой доставки рикошета
    4. Сборка и инсталляция Exim
  • 4.1. Распаковка
  • 4.2. Разнообразие архитектур и операционных систем
  • 4.3. DBM библиотеки
  • 4.4. Предсборочная конфигурация
  • 4.5. поддержка iconv()
  • 4.6. Включение TLS/SSL шифрования
  • 4.7. Использование tcpwrappers
  • 4.8. Включение поддержики IPv6
  • 4.9. Процесс сборки
  • 4.10. Выходные данные после make
  • 4.11. Отмена опций при сборке Exim
  • 4.12. OS-cпецифические заголовки
  • 4.13. Отмена опций при сборке монитора
  • 4.14. Установка бинарных файлов и скриптов Exim'а
  • 4.15. Инсталляция документации
  • 4.16. Определение директории spool
  • 4.17. Тестирование
  • 4.18. Замещение другого MTA, Exim'ом
  • 4.19. Обновление Exim
  • 4.20. Остановка демона Exim на Solaris'е
    5. Командная строка Exim
  • 5.1. Установка опций именем программы
  • 5.2. Доверенные и административные пользователи
  • 5.3. Опции командной строки
    6. Конфигурационный файл exim во время выполнения
  • 6.1. Использование иного конфигурационного файла
  • 6.2. Формат конфигурационного файла
  • 6.3. Включения файлов в конфигурационый файл
  • 6.4. Макросы в конфигурационном файле
  • 6.5. Макроподстановка
  • 6.6. Переопределение макроса
  • 6.7. Отмена значения макроса
  • 6.8. Пример использования макроса
  • 6.9. Условные пропуски в конфигурационном файле
  • 6.10. Общий синтаксис опции
  • 6.11. Булевы опции
  • 6.12. Целочисленные значения
  • 6.13. Целочисленные восьмеричные значения
  • 6.14. Числовые значения с фиксированной точкой
  • 6.15. Значения временных интервалов
  • 6.16. Строковые значения
  • 6.17. Раскрытие строк
  • 6.18. Имена пользователей и групп
  • 6.19. Построение списков
  • 6.20. Пустые элементы в списках
  • 6.21. Формат конфигурации драйвера
    7. Дефолтовый конфигурационный файл
  • 7.1. Главные конфигурационные настройки
  • 7.2. Конфигурация ACL
  • 7.3. Конфигурация роутера (маршрутизатора)
  • 7.4. Транспортная конфигурация
  • 7.5. Дефолтовые правила повторов
  • 7.6. Конфигурация перезаписи
  • 7.7. Конфигурация аутентификаторов
    8. Регулярные выражения
  • 8.1. Tестирование регулярных выражений
    9. Поиски в файлах и базах данных
  • 9.1. Примеры различных синтаксисов поиска
  • 9.2. Типы поиска
  • 9.3. Одноключевые типы поиска
  • 9.4. Типы поиска в стиле запроса
  • 9.5. Временные ошибки в поисках
  • 9.6. Дефолтовые значения в одноключевых поисках
  • 9.7. Частичное совпадение в одноключевых поисках
  • 9.8. Кэширование поиска
  • 9.9. Квотирование (помещение в двойные кавычки) данных поиска
  • 9.10. Дополнительные сведения о dnsdb
  • 9.11. Псевдо-dnsdb типы записей
  • 9.12. Множественные поиски dnsdb
  • 9.13. Дополнительные сведения о LDAP
  • 9.14. Формат запросов LDAP
  • 9.15. Квотирование (использование двойных кавычек и спецсимволов) в LDAP
  • 9.16. Соединения LDAP
  • 9.17. Аутентификация LDAP и управляющая информация
  • 9.18. Формат данных возвращённых LDAP
  • 9.19. Дополнительные сведения о NIS+
  • 9.20. Поиски SQL
  • 9.21. Дополнительные сведения о MySQL, PostgreSQL, Oracle, и Interbase
  • 9.22. Специальные возможности MySQL
  • 9.23. Специальные возможности PostgreSQL
  • 9.24. Дополнительные сведения о SQLite
    10. Списки доменов, узлов, адресов и локальных частей [почтового] адреса
  • 10.1. Раскрытие списков
  • 10.2. Отрицаемые элементы в списках
  • 10.3. Имена файлов в списках
  • 10.4. Файл lsearch не нелинейный список
  • 10.5. Именованные списки
  • 10.6. Сравнение именованных списков с макросами
  • 10.7. Кэширование именованных списков
  • 10.8. Списки доменов
  • 10.9. Списки хостов
  • 10.10. Специальные паттерны списка хостов
  • 10.11. Паттерны списка хостов, совпадающие с IP-адресом
  • 10.12. Паттерны списка хостов для одноключевого поиска по имени хоста
  • 10.13. Паттерны списка хостов совпадающие по имени хоста
  • 10.14. Поведение, когда IP-адрес не может быть найден
  • 10.15. Список шаблонов хостов для одноключевого поиска по имени хоста
  • 10.16. Список шаблонов хостов для поиска в стиле запросов
  • 10.17. Смешивание безразличных имён хостов и адресов в списках хостов
  • 10.18. Списки адресов
  • 10.19. Регистр букв в списках адресов
  • 10.20. Списки локальных частей
    11. Раскрытие строк
  • 11.1. Дословный текст в раскрываемых строках
  • 11.2. Последовательности с обратным слэшем, в расширенных строках
  • 11.3. Тестирование раскрываемых строк
  • 11.4. Принудительный отказ от раскрытия строки
  • 11.5. Элементы раскрытия
  • 11.6. Операторы раскрытия
  • 11.7. Условия раскрытия
  • 11.8. Комбинирование условий раскрытия
  • 11.9. Переменные раскрытия
    12. Встроенный perl
  • 12.1. Настройка использования perl
  • 12.2. Вызов подпрограмм perl
  • 12.3. Вызов функций exim`a из perl`a
  • 12.4. Использование стандартного вывода и ошибок perl`ом
    13. Запуск даемона, и использование сетевых интерфейсов
  • 13.1. Запуск слушающего даемона
  • 13.2. Специальный IP слушающий адреса
  • 13.3. Отмена local_interfaces и daemon_smtp_ports
  • 13.4. Поддержка устаревшего протокола SSMTP (или SMTPS)
  • 13.5. Области адресов IPv6
  • 13.6. Отключение IPv6
  • 13.7. Примеры запуска слушающего даемона
  • 13.8. Распознание локального хоста
  • 13.9. Доставка к удалённому хосту
    14. Главная конфигурация
  • 14.1. Разное
  • 14.2. Параметры exim
  • 14.3. Настройки привелегий
  • 14.4. Логгинг
  • 14.5. Замороженные сообщения
  • 14.6. Поиск данных
  • 14.7. Идентификаторы сообщений
  • 14.8. Запуск встроенного perl`a
  • 14.9. Даемон
  • 14.10. Контроль ресурсов
  • 14.11. Управление политиками
  • 14.12. Кэш обратных вызовов
  • 14.13. TLS
  • 14.14. Локальная обработка пользователей
  • 14.15. Все входящие сообщения (SMTP и не-SMTP)
  • 14.16. Входящие не-SMTP сообщения
  • 14.17. Входящие не-SMTP сообщения
  • 14.18. Расширения SMTP
  • 14.19. Обработка сообщений
  • 14.20. Системный фильтр
  • 14.21. Роутинг и доставка
  • 14.22. Рикошеты и предупрждающие сообщения
  • 14.23. Алфавитный список главных опций
    15. Общие опции для роутеров
    16. Роутер ACCEPT
    17. Роутер dnslookup
  • 17.1. Проблемы с поиском в DNS
  • 17.2. Частные опции для dnslookup
  • 17.3. Эффект опций qualify_single и search_parents
    18. Роутер ipliteral
    19. Роутер iplookup
    20. Роутер manualroute
  • 20.1. Частные (private) опции manualroute
  • 20.2. Правила маршрутизации в опции route_list
  • 20.3. Правила маршрутизации в опции route_data
  • 20.4. Формат списка узлов
  • 20.5. Формат одного элемента хоста
  • 20.6. Как используется список узлов
  • 20.7. Как используются опции
  • 20.8. Примеры manualroute
    21. Роутер queryprogram
    22. Роутер redirect
  • 22.1. Данные для перенаправления
  • 22.2. Файлы пересылки (forward files) и проверка адреса
  • 22.3. Обработка данных перенаправления
  • 22.4. Элементы списка перенаправления
  • 22.5. Перенаправление в локальный почтовый ящик
  • 22.6. Специальные конструкции в списках перенаправления
  • 22.7. Дублирование адресов
  • 22.8. Повторяющееся преобразование перенаправления
  • 22.9. Ошибки в списках перенаправления
  • 22.10. Частные опции роутера redirect
    23. Среда для работы локальных транспортов
  • 23.1. Одновременные доставки
  • 23.2. Uid`ы и gid`ы
  • 23.3. Текущая и домашняя директории
  • 23.4. Переменные раскрытия произведённые из адреса
    24. Общие опции для транспортов
    25. Группировка адресов в локальных транспортах
    26. Транспорт appendfile
  • 26.1. Опции file и directory
  • 26.2. Частные опции для appendfile
  • 26.3. Операционные детали для добавления
  • 26.4. Операционные детали для доставки в новый файл
  • 26.5. Доставка maildir
  • 26.6. Использование тэгов для записи размера сообщений
  • 26.7. Использование файла maildirsize
  • 26.8. Доставка mailstore
  • 26.9. Неспециальная доставка в новый файл
    27. Транспорт autoreply
  • 27.1. Частные опции для autoreply
    28. Транспорт lmtp
    29. Транспорт
    pipe
  • 29.1. Конкурирующие доставки
  • 29.2. Возвращаемый статус и данные
  • 29.3. Как выполняется команда
  • 29.4. Переменные окружения
  • 29.5. Частные опции для pipe
  • 29.6. Использование внешнего (стороннего) агента локальной доставки
    30. Транспорт SMTP
  • 30.1. Несколько сообщений в одном соединении
  • 30.2. Использование переменной $host
  • 30.3. Частные опции для smtp
  • 30.4. Как ограничить число хостов используемых для проверки
    31. Перезапись адресов
  • 31.1. Явно сконфигурированная перезапись адресов
  • 31.2. Когда происходит перезапись?
  • 31.3. Тестирование правил перезаписи применяемых на входе
  • 31.4. Правила перезаписи
  • 31.5. Шаблоны перезаписи
  • 31.6. Перезапись замен
  • 31.7. Флаги перезаписи
  • 31.8. Флаги, определяющие какие заголовки и адрес конверта перезаписывать
  • 31.9. Флаг перезаписи во время SMTP
  • 31.10. Флаги контролирующие процесс перезаписи
  • 31.11. Примеры перезаписи
    32. Конфигурация повторов
  • 32.1. Правила повторов
  • 32.2. Выбор, какие правила используются для ошибок адреса
  • 32.3. Выбор, какое правило используется для хоста и сообщения о ошибке
  • 32.4. Правила повтора для специфических ошибок
  • 32.5. Правила повторов для специфических отправителей
  • 32.6. Параметры повтора
  • 32.7. Примеры правил повтора
  • 32.8. Таймаут для данных повторов
  • 32.9. Долгосрочные ошибки
  • 32.10. Доставки работающие с перерывами
    33. SMTP-аутентификация
  • 33.1. Общие опции для аутентификаторов
  • 33.2. Параметр AUTH в команде MAIL
  • 33.3. Аутентификация на сервере exim
  • 33.4. Проверка серверной аутентификации
  • 33.5. Аутентификация exim`a как клиента
    34. Аутентификатор plaintext
  • 34.1. Использование plaintext в сервере
  • 34.2. Аутентификационный механизм PLAIN
  • 34.3. Аутентификационный механизм LOGIN
  • 34.4. Поддержка для иных видов аутентификации
  • 34.5. Использование plaintext как клиента
    35. Аутентификатор cram_md5
  • 35.1. Использование cram_md5 как сервера
  • 35.2. Использование cram_md5 как клиента
    36. Аутентификатор cyrus_sasl
    36.1. Использование cyrus_sasl в качестве сервера
    37. Аутентификатор spa
  • 37.1. Использование spa как сервера
  • 37.2. Использование spa как клиента
    38. Шифрование соединений с использованием TLS/SSL
  • 38.1. Поддержка для наследственного ssmtp (или smtps) протокола
  • 38.2. OpenSSL против GnuTLS
  • 38.3. Вычисление параметра GnuTLS
  • 38.4. Требование специфических шифров в OpenSSL
  • 38.5. Специфические шифры требующиеся в GnuTLS
  • 38.6. Конфигурирование сервера exim для использования TLS
  • 38.7. Запрос и проверка клиентских сертификатов
  • 38.8. Отменённые сертификаты
  • 38.9. Конфигурирование клиента exim`a для использования TLS
  • 38.10. Несколько сообщений через одно шифрованное TCP/IP соединение
  • 38.11. Сертификаты и всё такое
  • 38.12. Цепочки сертификатов
  • 38.13. Самоподписанный сертификаты
    39. Списки Контроля Доступа
  • 39.1. Тестирование ACL
  • 39.2. Определение, когда используются ACL
  • 39.3. Не-SMTP ACL
  • 39.4. ACL подключения
  • 39.5. ACL DATA
  • 39.6. ACL MIME
  • 39.7. ACL QUIT
  • 39.8. Нахождение ACL для использования
  • 39.9. Коды возврата ACL
  • 39.10. Незаданные опции ACL
  • 39.11. Данные для ACL сообщений
  • 39.12. Данные для ACL не-сообщений
  • 39.13. Формат ACL
  • 39.14. Команды ACL
  • 39.15. Переменные ACL
  • 39.16. Обработка условий и модификаторов
  • 39.17. Модификаторы ACL
  • 39.18. Использование модификатора control
  • 39.19. Добавление строк заголовков в ACL`ах
  • 39.20. Условия ACL
  • 39.21. Использование списков DNS
  • 39.22. Задание IP-адреса для поиска в списках DNS
  • 39.23. DNS-списки основанные на именах доменов
  • 39.24. Поиски в DNS основанные на нескольких ключах
  • 39.25. Данные возвращаемые списками DNS
  • 39.26. Переменные устанавливаемые из списков DNS
  • 39.27. Дополнительные совпадения условий для списков DNS
  • 39.28. Отрицательные условия сравнения DNS
  • 39.29. Списки DNS и IPv6
  • 39.30. Ограничение нормы отправителей
  • 39.31. Проверка адресов
  • 39.32. Проверка обратным вызовом
  • 39.33. Дополнительные параметры для обратных вызовов
  • 39.34. Кэширование обратных вызовов
  • 39.35. Отчёты проверки адресов отправителя
  • 39.36. Перенаправление при проверке
  • 39.37. Клиентская SMTP-авторизация (CSA)
  • 39.38. Проверка тега адреса рикошета
  • 39.39. Использование ACL для упавления релеингом
  • 39.40. Проверка конфигурации релея
    40. Контентное сканирование во время ACL
  • 40.1. Сканирование на вирусы
  • 40.2. Сканирование с SpamAssassin
  • 40.3. Вызов SpamAssassin из ACL exim`a
  • 40.4. Сканирование частей MIME
  • 40.5. Сканирование с регулярными выражениями
  • 40.6. Условие demime
    41. Добавляем функцию local scan в Exim
  • 41.1. Сборка Exim с использованием функции local scan
  • 41.2. API для local_scan()
  • 41.3. Опции конфигурации для local_scan()
  • 41.4. Доступные переменные Exim
  • 41.5. Структура header_line
  • 41.6. Структура recipient_item
  • 41.7. Доступные функции Exim
  • 41.8. Больше об обработке памяти Exim'ом
    42. Системная фильтрация сообщений
  • 42.1. Установка системного фильтра
  • 42.2. Тестирование системного фильтра
  • 42.3. Содержимое системного фильтра
  • 42.4. Дополнительные переменные для системных фильтров
  • 42.5. Defer, freeze, и fail команды системного фильтра
  • 42.6. Добавление и удаление заголовков в системном фильтре
  • 42.7. Установка адреса ошибок в системном фильтре
  • 42.8. Фильтрация по адресам
    43. Обработка сообщения
  • 43.1. Режим передачи для нелокальных сообщений
  • 43.2. Завершения строк
  • 43.3. Неквалифицированные адреса
  • 43.4. Строка From UUCP
  • 43.5. Строки заголовков Resent-
  • 43.6. Строка заголовка Auto-Submitted:
  • 43.7. Строка заголовка Bcc:
  • 43.8. Строка заголовка Date:
  • 43.9. Строка заголовка Delivery-date:
  • 43.10. Строка заголовка Envelope-to:
  • 43.11. Строка заголовка From:
  • 43.12. Строка заголовка Message-ID:
  • 43.13. Строка заголовка Received:
  • 43.14. Строка заголовка References:
  • 43.15. Строка заголовка Return-path:
  • 43.16. Строка заголовка Sender:
  • 43.17. Добавление и удаление заголовков в роутерах и транспортах
  • 43.18. Конструирование адресов
  • 43.19. Регистры локальных частей
  • 43.20. Точки в локальных частях
  • 43.21. Перезапись адресов
    44. Обработка SMTP
  • 44.1. Исходящий SMTP и LMTP через TCP/IP
  • 44.2. Ошибки в исходящем SMTP
  • 44.3. Входящие SMTP сообщения через TCP/IP
  • 44.4. Нераспознанные SMTP-команды
  • 44.5. Синтаксис и ошибки протокола в командах SMTP
  • 44.6. Использование непочтовых SMTP команд
  • 44.7. Команды VRFY и EXPN
  • 44.8. Команда ETRN
  • 44.9. Входящий локальный SMTP
  • 44.10. Исходящий пакетный SMTP
  • 44.11. Входящий пакетный SMTP
    45. Настройка рикошетов и предупреждающих сообщений
  • 45.1. Настройка рикошетов
  • 45.2. Настройка предупреждающих сообщений
    46. Некоторые общие конфигурационые опции
  • 46.1. Отсылка почты на умный хост
  • 46.2. Использование exim для обработки списков рассылки
  • 46.3. Синтаксические ошибки в списках рассылки
  • 46.4. Повторное раскрытие списков рассылки
  • 46.5. Закрытые списки рассылки
  • 46.6. Переменные пути возврата конверта (VERP)
  • 46.7. Виртуальные домены
  • 46.8. Многочисленные пользовательские почтовые ящики
  • 46.9. Упрощённая обработка отпуска (vacation)
  • 46.10. Отбор копий сообщений
  • 46.11. Периодически подключенные хосты
  • 46.12. Exim на вышестоящих серверных хостах
  • 46.13. Exim на периодически подключаемом клиентском хосте
    47. Использование exim`a как клиента без очереди сообщений
    48. Файлы логов
  • 48.1. Где пишутся логи
  • 48.2. Логгинг в локальные файлы, которые периодически ротируются
  • 48.3. Штамп даты на файлах логов
  • 48.4. Логгинг в syslog
  • 48.5. Флаги строк логов
  • 48.6. Логирование приёма сообщений
  • 48.7. Логгинг доставок
  • 48.8. Доставки от которых отказались
  • 48.9. Отсроченные доставки
  • 48.10. Ошибки доставки
  • 48.11. Поддельные доставки
  • 48.12. Завершение
  • 48.13. Краткое изложение полей в строках логов
  • 48.14. Другие записи логов
  • 48.15. Сокращение или увеличение того, что логгируется
  • 48.16. Лог сообщения
    49. Утилиты exim`a
  • 49.1. Поиск, что делают процессы exim`a (exiwhat)
  • 49.2. Селективный просмотр очереди (exiqgrep)
  • 49.3. Подведение итогов очереди (exiqsumm)
  • 49.4. Извлечение специфической информации из лога (exigrep)
  • 49.5. Отбор сообщений по различным критериям (exipick)
  • 49.6. Ротация лог-файлов (exicyclog)
  • 49.7. Почтовая статистика (eximstats)
  • 49.8. Проверка политики доступа (exim_checkaccess)
  • 49.9. Создание файлов DBM (exim_dbmbuild)
  • 49.10. Нахождение индивидуальных времён повторов (exinext)
  • 49.11. Обслуживание БД подсказок
  • 49.12. exim_dumpdb
  • 49.13. exim_tidydb
  • 49.14. exim_fixdb
  • 49.15. Обслуживание почтового ящика (exim_lock)
    50. Монитор exim`a
  • 50.1. Запуск монитора
  • 50.2. Графики
  • 50.3. Кнопки главного действия
  • 50.4. Показ логов
  • 50.5. Отображение очереди
  • 50.6. Меню очереди
    51. Обсуждение безопасности
  • 51.1. Сборка более защищённого exim`a
  • 51.2. root`овые привилегии
  • 51.3. Работа exim без привилегий
  • 51.4. Доставка в локальные файлы
  • 51.5. Источник роутинга IPv4
  • 51.6. Команды VRFY, EXPN, и ETRN в SMTP
  • 51.7. Привелигированные пользователи
  • 51.8. Файлы спула
  • 51.9. Использование argv[0]
  • 51.10. Использование форматирования %f
  • 51.11. Встроенные пути exim`a
  • 51.12. Использование sprintf()
  • 51.13. Использование debug_printf() и log_write()
  • 51.14. Использование debug_printf() и log_write()
    52. Формат файлов спула
  • 52.1. Формат файла -H
    53. Добавление новых драйверов или типов поисков

    54. Возможности Exim для фильтрации почты


    =============
    Автор перевода: lissyara, оригинал: http://www.lissyara.su/?id=1200
       Часть перевода взята отсюда. Это указано в конце всех взятых частей.