Я пытаюсь понять, как заставить postfix принимать электронную почту для любого поддомена моего основного сайта. У меня нет виртуальных доменов, только длинный список субдоменов для локальной доставки. В частности, я кормлю python@*.mydomain.com
в Python с помощью файла псевдонима:
python: |/www/proc_email.py
Python может обрабатывать доставку оттуда. Я предполагаю, что это будет выглядеть примерно так:
mydestination = encendio, localhost.localdomain, localhost, *.mydomain.com
Я использую последнюю версию postfix на Ubuntu (не совсем уверен, как проверить версию).
Заранее спасибо.
Решение pcre в принятом ответе работает хорошо, но вы можете подумать о привязке регулярного выражения, чтобы избежать попадания только в часть имени домена.
/^encendio$/ ACCEPT
/^localhost\.localdomain$/ ACCEPT
/^localhost$/ ACCEPT
/^.*\.mydomain\.com$/ ACCEPT
Вы не можете использовать подстановочные знаки, если явно перечисляете пункты назначения в конфигурации Postfix, но, к счастью, $mydestination
опция принимает поиск по таблице. Так что попробуйте установить $mydestination
к карта pcre как это:
mydestination = pcre:/etc/postfix/mydestinations
Затем создайте /etc/postfix/mydestinations
с правильно закрепленными и экранированными регулярными выражениями:
/^encendio$/ ACCEPT
/^localhost\.localdomain$/ ACCEPT
/^localhost$/ ACCEPT
/^.*\.mydomain\.example$/ ACCEPT
Технически вместо "ПРИНЯТЬ" вы можете поставить что угодно, так как результат игнорируется; только наличие матча достаточно:
Укажите список имен хостов или доменов, шаблоны «/ file / name» или «type: table», разделенные запятыми и / или пробелами. Шаблон "/ file / name" заменяется его содержимым; таблица поиска "type: table" соответствует, когда имя соответствует ключу поиска (результат поиска игнорируется).
*.mydomain.com
не будет работать.
Вам нужно создать relay-domains
и поместите туда все свои поддомены. 1 на строку.