Замена получателя одним или несколькими другими

aliases and forwarding
Один адрес на входе, несколько на выходе

Механизм простой: объявленный адрес заменяется одним или несколькими другими, перечисленными через запятую. Письмо, пришедшее на example@yourdomain.com, уходит на все названные адреса.

Место в цепочке названо точно. Раскрытие происходит после того, как применён список выбора и выбран поток отправки, но до того, как письмо в этот поток поставлено. То же касается писем, которым поток назначен умолчанием источника или заголовком.

Из этого следует неочевидное: выбор потока делается по исходному получателю, а уезжает письмо уже другим. Если поток выбирается правилом по домену получателя, все раскрытые адреса уйдут потоком, выбранным для домена исходного.

Сокращённая запись — только локальная часть. Тогда пересылка срабатывает для адресов с этой локальной частью в любом из локальных имён узла. Сопоставление по домену и по образцу не поддерживается — только точное совпадение.

Главная ловушка — раскрытие после выбора потока. Пересылка выглядит как «отправить ещё и туда», а на деле письмо уходит потоком, выбранным для исходного получателя. Правило, раскладывающее почту по потокам, о новых адресах не узнает.

Вторая половина — умножение. Один адрес на входе может стать тремя на выходе, и это не видно нигде, кроме объявления пересылки. Объём, темп и пределы считаются уже по раскрытым адресам.

Что делает Хаб. Не задействует: пересылку он не объявляет, и служебная входящая почта у него разбирается обработчиками отказов и жалоб, а не пересылается дальше.

Механизм пригодился бы там, где роль-адреса нескольких доменов должны сходиться в один ящик. Сейчас dmarc@, postmaster@ и abuse@ принимаются правилом по образцу и уходят в обработчик отказов: распознанное становится записью учёта, остальное гасится — в ящик они не попадают.

Пример в конфигурации
# объявление имён узла, приём и сама пересылка
host-name yourdomain.com
relay-address user@example.com

<aliases>
    alias example@yourdomain.com support@example.net,sales@example.net    alias jdoe someone@example.com
</aliases>
Первая строка пересылки даёт два адреса на выходе. Вторая записана сокращённо — она сработает для jdoe@ в любом из объявленных имён узла.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Ждут, что поток выберется по новому адресу

§ 13.9

Чем чреватоПоток выбирается до раскрытия — по исходному получателю. Письма уходят потоком, назначенным для домена, которого в них уже нет.
Как заметитьВ учёте у пересланных писем стоит поток, не соответствующий их домену получателя.
Как правильноУчитывать это при раскладке по потокам: правило должно подходить исходному адресу, а не конечному.

Рассчитывают на образцы в объявлении пересылки

§ 13.9

Чем чреватоСопоставление по домену и по образцу не поддерживается — только точный адрес или голая локальная часть. Объявление с образцом просто не сработает.
Как заметитьПересылка не срабатывает, а в конфигурации она выглядит объявленной.
Как правильноПеречислять адреса точно либо пользоваться сокращённой записью локальной части.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Объявления видно в конфигурации; результат — по очередям:
grep -n -A5 '^<aliases>\|^alias ' /etc/pmta/config
pmta show queues --maxitems=20
В очередях появятся домены адресов, на которые пересылается почта, а не тех, на которые она пришла. Это и есть самый быстрый способ убедиться, что раскрытие сработало.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Приём входящей почты