Нужна помощь с постфиксным каноническим отображением
Я испытываю трудности с получением canonical_maps
функция для работы по мере необходимости, чтобы восстановить некоторые неправильные адреса из старого клиента. Вот ситуация и то, что я пробовал до сих пор:
Устаревший клиент (oldhost.legacy.org) не добавляет свой домен (legacy.org) к адресам в конверте или сообщению при отправке их через SMTP. Итак, если пользователь вводит адрес, такой как guser@oldhost
это выходит с SMTP как user@oldhost
вместо [email protected]
,
Машина с постфиксом (newhost.standard.org
) имеет другой домен (standard.org
) из устаревшей машины. Он также выступает в роли MX и реле для oldhost.legacy.org
домен.
Когда сообщения от устаревшего клиента приходят на постфиксный компьютер с адресами, такими как guser@oldhost
(отсутствует .legacy.org
), Я хотел бы переписать те, чтобы читать [email protected]
, Насколько я понимаю, функция canonical_maps предназначена для этой цели.
В /etc/postfix/canonical.pcre
Я имею:
/^(.*)@oldhost$/ [email protected]
Если я проверю с: postmap –q
guser @ oldhostpcre:/etc/postfix/canonical.pcre
ответ: [email protected]
, Отлично.
В /etc/postfix/main.cf
я имею
canonical_maps = pcre:/etc/postfix/canonical.pcre
Затем на прежнем хосте я отправляю сообщение, такое как:
To: [email protected]
Cc: user@oldhost
Сообщение поступает на постфиксный компьютер, но строка CC не переписывается.
В документации для canonical_maps говорится, что для того, чтобы заголовки были переписаны, клиент должен либо сопоставить local_header_rewrite_clients
или еще remote_header_rewrite_domain
должен быть ненулевым. Я пробовал оба, но ни один из них не выдает нужного мне результата.
Если я установлю local_header_rewrite_clients = static:all
или же permit_mynetworks
или какой-либо другой вариант, который приведет к совпадению устаревшего клиента, то append_dot_domain
опция вступает во владение и переписывает адрес как [email protected]
, Каноническая таблица, видимо, игнорируется.
Если я вместо этого уйду local_header_rewrite_clients
по умолчанию (что не соответствует устаревшему клиенту) и включите remote_header_rewrite_domain = invalid.domain
, то адрес переписывается как [email protected]
и, опять же, каноническая таблица, видимо, игнорируется.
Таким образом, документация для канонической таблицы является правильной, что перезапись происходит только в том случае, если local_header_rewrite_clients
соответствует клиенту или если remote_header_rewrite_domain
установлено. И переписывание действительно происходит. Но переписывание, которое имеет место, полностью игнорирует каноническую таблицу.
Итак, как мне получить постфикс для применения append_dot_domain
а также append_at_myorigin
только для себя и применить каноническую таблицу к другим клиентам или, по крайней мере, сначала применить каноническую таблицу?