使用“virtual_alias_maps”中的域替换显式的“virtual_alias_domains”

使用“virtual_alias_maps”中的域替换显式的“virtual_alias_domains”

我有一个在职的Postfix 配置包含一些本地邮箱、一些本地别名和一些纯虚拟别名域。因为我觉得将所有配置都添加到 很繁琐,所以virtual_alias_domains我想问:如何通过在 中使用它们来定义它们virtual_alias_maps

例子:

### /etc/postfix/main.cf
myhostname = mx.example.com
virtual_alias_domains =
    foo.example
    bar.example
virtual_alias_maps = hash:/etc/postfix/virtual

### /etc/postfix/virtual
[email protected] [email protected]
@bar.example            [email protected]

# this one is missing in virtual_alias_domains and won't work
@baz.example            [email protected]

当添加新条目时,baz.example我可能会忘记将它们列在 中virtual_alias_domains。这也违反了不要重复自己

如何摆脱virtual_alias_domains或“动态编译它”?

http://www.postfix.org/postconf.5.html#virtual_alias_domains说的默认值virtual_alias_domains$virtual_alias_maps

默认值为 $virtual_alias_maps,以便您可以将有关虚拟别名域的所有信息保存在一个地方。

但这对我来说似乎不起作用。

Jan 31 00:09:25 HOSTNAME postfix/smtpd[5064]: NOQUEUE: reject: RCPT from FROM_HOSTNAME[185.XXX.XXX.XXX]: 454 4.7.1 <FROM_ADDRESS>:
  Relay access denied; from=<FROM_ADDRESS> to=<TO_ADDRESS> proto=ESMTP helo=<FROM_HOSTNAME>

(匿名日志,插入换行符以方便阅读)我的实际配置:

# postconf -n | egrep ^virtual_
virtual_alias_maps = hash:/etc/postfix/virtual 

# postconf | egrep ^virtual_alias
virtual_alias_address_length_limit = 1000
virtual_alias_domains = $virtual_alias_maps
virtual_alias_expansion_limit = 1000
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_recursion_limit = 1000

不幸的是我不知道转储的配置virtual_alias_domains 变量扩展。

答案1

我也遇到了同样的问题。 这个答案是正确的,但我不太明白它的意思。

virtual_alias_maps要对和使用单个文件virtual_alias_domains,您需要分别包含要转发的每个域,不带@。为了让 Postfix 满意,键和值都是必需的,但对于这些域条目,值可以是您想要的任何值,因为 Postfix 只检查键(域)是否存在。

例子/etc/postfix/virtual

# These are the virtual aliases:
[email protected] [email protected]
@bar.example            [email protected]
@baz.example            [email protected]

# Repeat the bare domains:
foo.example             LITERALLY_ANYTHING
bar.example             LITERALLY_ANYTHING
baz.example             LITERALLY_ANYTHING

您可以保留一个仅包含别名映射的文件,并通过脚本运行它以提取域并创建组合输出文件,但此时您也可以将域传递给postconf -e,或将域条目放在单独的文件中并在其上运行postmap,然后告知virtual_alias_domains使用该文件。对我来说,手动添加额外的域条目很好,但将它们全部放在一个地方会更好。

相关内容