В настоящее время у меня есть /etc/postfix/virtual
файл с такими записями:
user@foo.com foo@bar.com
Я хочу иметь возможность пересылать user+asdf@foo.com
к foo+asd@bar.com
Как мне это сделать?
РЕДАКТИРОВАТЬ: Я установил
propagate_unmatched_extensions = canonical, virtual
и
recipient_delimeter = +
но все равно продолжаю получать Recipient address rejected: User unknown in local recipient table;
РЕДАКТИРОВАТЬ II: Я внес изменения, предложенные в обновленном ответе @ Schot, с некоторым прогрессом;
Теперь я получаю Recipient address rejected: User unknown in virtual alias table;
при отправке в user+asdf@foo.com
Отправка на user@foo.com работали как до, так и после доработок
РЕДАКТИРОВАТЬ III:
Postfix - это версия 2.3.3 - у меня нет отдельного mail.warn
или mail.err
журналы - просто /var/log/maillog
. Вот полный (анонимный) фрагмент:
РЕДАКТИРОВАТЬ IV: Обновлено до postfix 2.3.19 без везения.
ИЗМЕНИТЬ V: Делаю postconf -n
показало, что recipient_delimiter
был написан с ошибкой в main.cf
а также выше а разделитель вообще не обрабатывался.
Ваши текущие записи в порядке, вы должны посмотреть на распространяться_unmatched_extensions параметр конфигурации. Убедитесь, что он включает virtual
.
О том, что регулярное выражение не работает, см. Справочную страницу для виртуальный (8):
Агент доставки virtual (8) запрещает замену регулярным выражением $ 1 и т. Д. В таблицах поиска регулярных выражений, поскольку это может открыть брешь в безопасности.
Я протестировал вашу конфигурацию, и она у меня работает. Возможно, проблема заключается в одном из следующих:
mydestination
? Если это, удалять Это.virtual_alias_domains
? Если нет, добавьте его.Боковое примечание: работает ли отправка почты на user@foo.com (без разделителя +)?
Это recipient_delimiter
не recipient_delimEter
Замены $ number не допускаются в виртуальном файле из соображений безопасности. http://www.postfix.org/PCRE_README.html