使用后缀托管通配符子域名

使用后缀托管通配符子域名

我正在尝试弄清楚如何让 postfix 接受我主站点的任何子域的电子邮件。我没有虚拟域,只有一长串用于本地交付的子域。具体来说,我python@*.mydomain.com使用别名文件将其输入到 Python 中:

python:    |/www/proc_email.py

Python 可以从那里处理交付。我设想这看起来像这样:

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

我在 Ubuntu 上运行最新版本的 postfix(不太清楚如何检查版本)。

提前致谢。

答案1

如果您在 Postfix 配置中明确列出目的地,则不能使用通配符,但幸运的是,该$mydestination选项接受表查找。因此,请尝试设置$mydestination聚合酶链反应图谱像这样:

mydestination = pcre:/etc/postfix/mydestinations

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

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

从技术上讲,你可以在“ACCEPT”的位置放任何东西,因为结果会被忽略;只是比赛的存在就足够了

指定主机或域名列表、“/file/name”或“type:table”模式,以逗号和/或空格分隔。“/file/name”模式由其内容替换;当名称与查找键匹配时,将匹配“type:table”查找表(查找结果将被忽略)。

答案2

接受答案中的 pcre 解决方案效果很好,但您可能需要考虑锚定正则表达式,以避免仅在域名的一部分上获得命中。

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

答案3

*.mydomain.com不起作用。

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

相关内容