使用后缀托管通配符子域


9

我正在尝试找出如何获取后缀以接受主站点任何子域的电子邮件的方法。我没有虚拟域,只有一长串用于本地交付的子域。具体来说,我正在python@*.mydomain.com使用别名文件输入Python:

python:    |/www/proc_email.py

Python可以从那里处理交付。我设想这看起来类似于:

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

我在Ubuntu上运行最新版本的postfix(不正确地确定如何检查版本)。

提前致谢。

Answers:


19

如果您在Postfix配置中明确列出目标,则不能使用通配符,但幸运的是,该$mydestination选项接受表查找。因此,尝试设置$mydestination为像这样的pcre映射

mydestination = pcre:/etc/postfix/mydestinations

然后/etc/postfix/mydestinations使用正确锚定和转义的正则表达式创建:

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.example$/     ACCEPT

从技术上讲,您可以将所有内容替换为“ ACCEPT”,因为结果将被忽略;仅存在匹配项即可

指定主机或域名,“ /文件/名称”或“类型:表格”模式的列表,并用逗号和/或空格分隔。“ /文件/名称”模式被其内容替换;当名称与查找关键字匹配时,将匹配“ type:table”查找表(查找结果将被忽略)。


2
正则表达式应该被固定;参见serverfault.com/a/352928/84843
理查德·汉森

19

可接受的答案中的pcre解决方案效果很好,但您可能需要考虑锚定正则表达式,以避免仅对部分域名产生匹配。

/^encendio$/                  ACCEPT
/^localhost\.localdomain$/    ACCEPT
/^localhost$/                 ACCEPT
/^.*\.mydomain\.com$/         ACCEPT

0

*.mydomain.com 不会工作。

您需要创建relay-domains所有子域并将其放在其中。每行1个。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.