Postfix:究竟什么是别名域?

ske*_*rit 12 postfix

我以为我理解“别名域”,因为它只是另一个域的别名!因此,当我设置像“info@main.com”这样的邮箱,并将“alias.com”添加为“main.com”的域别名时,地址“info@alias.com”也可以使用......但没有!

所以,我添加了这些域:

  • 主网
  • 别名.com

我创建了这个邮箱:

  • info@main.com

然后我映射了这些别名域:

  • alias.com => main.com

然后当我向 info@alias.com 发送邮件时,我收到此错误:

Recipient address rejected: User unknown in virtual mailbox table (state 13).
Run Code Online (Sandbox Code Playgroud)

我不想为每个域创建别名,因为我有几个。我也不想使用通配符(如 info@*),因为还有其他域不是main.com

那么……这些究竟是什么?

Sam*_*nes 14

添加alias.comvirtual_alias_domains是正确的第一步,但这只是告诉 Postfix 您想使用该域作为别名。它没有说明别名应该是什么。为此,您需要使用虚拟别名映射。

首先,将这样的内容添加到main.cf

virtual_alias_domains = alias.com
virtual_alias_maps = hash:/etc/postfix/virtual
Run Code Online (Sandbox Code Playgroud)

添加virtual_alias_maps会为您提供一个/etc/postfix/virtual用作虚拟别名映射的文件 ( )。但是你在那个文件里放了什么?根据virtual(5) 联机帮助页

postmap(1) 命令的输入格式如下:

  pattern address, address, ...
Run Code Online (Sandbox Code Playgroud)

当模式与邮件地址匹配时,将其替换为相应的地址。

通过从索引文件(例如 DB 或 DBM)或从网络表(例如 NIS、LDAP 或 SQL)查找,每个 user@domain 查询都会生成一系列查询模式,如下所述。在尝试下一个查询模式之前,将每个查询模式发送到每个指定的查找表,直到找到匹配项。

...

@domain address, address, ...
Run Code Online (Sandbox Code Playgroud)

将域中其他用户的邮件重定向到地址。

查找结果会被地址重写:当结果具有 形式时@otherdomain,结果成为 中的同一用户otherdomain。这仅适用于多地址查找结果中的第一个地址。

因此,将其放入/etc/postfix/virtual将实现您想要的全域别名:

# map any <user>@alias.com to the matching <user>@main.com
@alias.com     @main.com
Run Code Online (Sandbox Code Playgroud)

然后,由于该文件是一个哈希表,您需要运行postmap解释,手册):

postmap /etc/postfix/virtual
Run Code Online (Sandbox Code Playgroud)

您可以在Postfix Virtual Domain HOWTO 中找到有关虚拟域的更多信息,在Postfix Address Rewriting HOWTO 中可以找到有关别名的更多信息。

  • 我不会说这是一个错误,确切地说,因为它实际上配置了一个虚拟别名域。相反,我怀疑 PostfixAdmin 希望您知道 Postfix 虚拟别名域是什么,并且您还需要添加实际别名以使它们执行任何操作。不过,如果它告诉你那可能会更好。 (2认同)

mai*_*ilq 5

解释在文档中:http://www.postfix.org/VIRTUAL_README.html#virtual_alias

您想要“别名邮箱”,又名 virtual_mailbox_alias 和 virtual_mailbox_maps,但谈论“别名域”:http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class

  • 我似乎无法理解这些文档 - 你如何将“domain1.com”别名*任何*邮箱设置为“&lt;mailbox&gt;@domain2.com”? (4认同)
  • @乔希M。您可以在“virtual_alias_maps”中使用具有“@domain1.com @domain2.com”形式的条目的哈希表。详情请参阅我的回答。 (2认同)