Маршрутизация
Назначение
Маршрутизация определяет способ доставки почтовых сообщений в зависимости от адреса получателя.
Сервер использует маршрутизацию для:
-
изменения адресов получателей;
-
перенаправления сообщений;
-
задания правил доставки.
Структура маршрутизатора
Формат обрабатываемого адреса
При маршрутизации сервер работает с адресом получателя, который разбивается на компоненты.
Общий вид адреса:
mailbox#object+detail$tag%domain@host
где:
-
mailbox — имя целевой папки для доставки письма или использования в качестве папки по умолчанию в протоколах доступа (рабочая папка в POP3, календарь в CalDAV);
-
object — именованный объект в домене (аккаунт, группа рассылки);
-
detail — детализация объекта: может служить для дополнительной маршрутизации внутри объекта;
-
tag — имя дополнительного пароля аккаунта (если его нет, то используется основной пароль);
-
domain — имя домена;
-
host — целевое имя системы. Если не задано, то совпадает с domain.
Анализ разбора адреса можно получить с помощью функции Анализ адреса в панели администратора (см. раздел Анализ адреса).
Порядок обработки маршрутизации
Обработка выполняется последовательно для каждого адреса.
Общий порядок:
-
Адрес разбивается на компоненты.
-
Выполняется сопоставление адреса с шаблонами.
-
При совпадении применяется соответствующее правило.
-
Формируется новое значение адреса или параметров.
-
Результат используется для дальнейшей обработки.
Таблицы маршрутизации
Маршрутизация задается в виде таблицы правил.
Каждое правило имеет вид:
-
pattern — шаблон для сопоставления;
-
replacement — результат преобразования.
Типы шаблонов
Существует два типа шаблонов:
| Тип | Описание |
|---|---|
<pattern> |
Шаблон применяется к полному адресу (например, user@domain) |
pattern |
Шаблон применяется только к доменной части |
Примеры:
-
Изменяет полный адрес:
<*@old.example.org> = \1@new.example.org -
Изменяет только домен:
old.example.org = new.example.org
Использование подстановок
При совпадении адреса с шаблоном часть значения, соответствующая подстановкам, может использоваться при формировании результата.
Для этого используются ссылки вида: \1, \2…, которые соответствуют найденным частям адреса.
Пример:
*@old.example.org = \1@new.example.org
Если исходный адрес: ivan@old.example.org
Результат: ivan@new.example.org
Подстановочные знаки
В шаблонах используются подстановочные знаки и выражения.
Поддерживаются:
-
*, ?
-
[], диапазоны
-
{m,n}
-
захваченные значения (\1, \2 …)
Подробное описание см. в разделе Шаблоны и подстановочные знаки.
Порядок обработки правил
Правила маршрутизации обрабатываются последовательно.
| Порядок расположения правил влияет на результат. |
Проверка маршрутизации
В панели администратора доступны два инструмента проверки: анализ адреса и проверка адреса.