Подстановочные поддомены с использованием постфикса

9

Я пытаюсь понять, как я могу получить постфикс, чтобы принимать электронную почту для любого субдомена моего основного сайта. У меня нет виртуальных доменов, просто длинный список поддоменов для локальной доставки. В частности, я пишу python@*.mydomain.comв Python, используя файл псевдонимов:

python:    |/www/proc_email.py

Питон может обработать доставку оттуда. Я предполагаю, что это выглядит следующим образом:

mydestination = encendio, localhost.localdomain, localhost, *.mydomain.com

Я использую последнюю версию postfix в Ubuntu (не совсем уверен, как проверить версию).

Заранее спасибо.

Джек М.
источник

Ответы:

19

Вы не можете использовать подстановочные знаки, если вы явно перечислили места назначения в своей конфигурации 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» сопоставляется, когда имя соответствует ключу поиска (результат поиска игнорируется).

Insyte
источник
2
Регулярные выражения должны быть найдены; см. serverfault.com/a/352928/84843
Ричард Хансен
19

Решение pcre в принятом ответе работает хорошо, но вы можете рассмотреть возможность привязки регулярного выражения, чтобы избежать попадания только в часть имени домена.

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.com$/         ACCEPT
gldr
источник
0

*.mydomain.com не будет работать.

Вам нужно создать relay-domainsи поместить все свои поддомены туда. 1 на строку.

Solefald
источник