Postfix: как менять адрес отправителя и заголовки письма без поломки DKIM
В Postfix можно переписывать адреса и заголовки, но сначала важно понять, что именно нужно изменить. Envelope sender, заголовок From: и тема Subject: — разные части сообщения, и для них применяются разные механизмы.
Envelope sender и From — не одно и то же
Envelope sender участвует в SMTP-доставке и возврате ошибок. Заголовок From: видит пользователь в почтовом клиенте. Попытка исправить один параметр инструментом для другого часто даёт неожиданный результат.
sender_canonical_maps
Подходит для систематического переписывания адресов отправителя по таблице соответствий. Это удобнее, чем десятки регулярных выражений, когда нужно привести локальные адреса к публичному домену.
smtp_generic_maps
Generic maps полезны, когда адрес нужно переписать именно при отправке наружу через SMTP-клиент Postfix. Это позволяет не менять внутреннее представление адресов раньше времени.
header_checks для Subject и других заголовков
header_checks умеет сопоставлять заголовки и выполнять действия над сообщением. Используйте этот механизм осторожно: изменение темы, From или других подписанных заголовков после DKIM-подписи сделает подпись недействительной.
Сначала определите порядок обработки
Если письмо подписывает отдельный DKIM-milter, переписывание заголовков должно происходить до формирования подписи. После изменения конфигурации отправьте тестовое письмо во внешний ящик и проверьте исходные заголовки, SPF, DKIM и DMARC.
Не маскируйте проблему маршрутизации
Если адрес приходится переписывать потому, что приложение генерирует неверный From, часто правильнее исправить приложение. Postfix rewriting полезен как централизованная политика, но не должен превращаться в слой случайных замен, который никто не понимает.
Итог: выбирайте механизм по тому, что меняется и на каком этапе: envelope sender, адрес в заголовке или текст Subject. После любых изменений проверяйте доставку и DKIM/DMARC на реальном внешнем получателе.