Я только начал играть с перезаписью адреса отправителя с постфиксом.
Я запускаю сервер с debian-7.11
и postfix-2.9.6
.
Содержимое /etc/postfix/main.cf
:
[...]
smtp_generic_maps = hash:/etc/postfix/generic
[...]
Содержимое / etc / postfix / generic
:
santiago@uranus.caoba.fr santiago.uranus.caoba.fr@caoba-mail.fr
auguste@uranus.caoba.fr auguste.uranus.caoba.fr@caoba-mail.fr
И пока это работает. Когда пользователь santiago
отправляет электронное письмо, оно отправляется как santiago.uranus.caoba.fr@caoba-mail.fr
это то, что я хочу.
Моя проблема в том, что я хочу, чтобы эта перезапись выполнялась с любым пользователем без добавления дополнительных строк в / etc / postfix / generic
. Так что мне было интересно, можно ли это сделать с помощью какого-нибудь регулярного выражения вроде:
(.*)@$hostname $1.$hostname@caoba-mail.fr
Это вообще возможно?
Спасибо за вашу помощь
Сантьяго
В руководстве по postfix явно указано, когда интерполяция в таблицах regexp
или pcre
запрещена (в основном из-за того, что авторы считают, что ее использование небезопасно в том смысле, контекст). Если соответствующее сопоставление не говорит, что это не так, интерполяция доступна по умолчанию.
Вы можете выполнять более сложные сопоставления с помощью запросов SQL, но пока имена ваших хостов фиксированы и только поддомены принадлежащих вам доменов, регулярное выражение будет вполне достаточно.
Установите подходящий модуль регулярного выражения для postfix
apt install postfix-pcre
Добавьте новую /etc/postfix/generic.pcre
таблицу:
/([a-z]+)@([^.]+)\.caoba\.fr/ $1.$2.caoba.fr@caoba-mail.fr
Измените тип таблицы (, которая заменяет ваше существующее сопоставление типов хэша
! ):
postconf -e smtp_generic_maps=pcre:/etc/postfix/generic.pcre
Вероятно, вы все еще хотите проверить, включен ли у вас append_dot_mydomain
(afaik, который раньше был включен по умолчанию). Debian устанавливает все соответствующие руководства, поэтому man 5 generic
вызовет объяснение.