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
Часть перевода взята отсюда. Это указано в конце всех взятых частей.