我正在努力解决如何让postfix接受我的主站点的任何子域的电子邮件。 我没有虚拟域名,只有本地交付的一大串子域名。 具体来说,我使用别名文件将python@*.mydomain.com给Python:
python: |/www/proc_email.py
Python可以处理从那里传递。 我期待着这样的观点:
mydestination = encendio, localhost.localdomain, localhost, *.mydomain.com
我在Ubuntu上运行最新版本的postfix(不正确地确定如何检查版本)。
提前致谢。
如果您在Postfixconfiguration中明确列出目标,则不能使用通配符,但幸运的是, $mydestination选项接受表查找。 所以试着把$mydestination设置成像这样的pcre地图 :
mydestination = pcre:/etc/postfix/mydestinations
然后创build/etc/postfix/mydestinations :
/encendio/ ACCEPT /localhost\.localdomain/ ACCEPT /localhost/ ACCEPT /.*\.mydomain\.com/ ACCEPT
从技术上讲,你可以把任何东西放在“接受”的地方,因为结果被忽略了。 只要比赛的存在就足够了 :
指定主机或域名,“/ file / name”或“type:table”模式的列表,用逗号和/或空格分隔。 “/文件/名称”模式被其内容replace; 当名称与查找键相匹配(查找结果被忽略)时,匹配“types:表”查找表。
在接受的答案pcre解决scheme运作良好,但您可能要考虑锚定的正则expression式,以避免只获得部分域名的命中。
/^encendio$/ ACCEPT /^localhost\.localdomain$/ ACCEPT /^localhost$/ ACCEPT /^.*\.mydomain\.com$/ ACCEPT
*.mydomain.com不会工作。
您需要创buildrelay-domains并把所有的子域放在那里。 每行1个。