我以为我理解“别名域”,因为它只是另一个域的别名!因此,当我设置像“info@main.com”这样的邮箱,并将“alias.com”添加为“main.com”的域别名时,地址“info@alias.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.com
到virtual_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) 命令的输入格式如下:
Run Code Online (Sandbox Code Playgroud)pattern address, address, ...
当模式与邮件地址匹配时,将其替换为相应的地址。
和
通过从索引文件(例如 DB 或 DBM)或从网络表(例如 NIS、LDAP 或 SQL)查找,每个 user@domain 查询都会生成一系列查询模式,如下所述。在尝试下一个查询模式之前,将每个查询模式发送到每个指定的查找表,直到找到匹配项。
...
Run Code Online (Sandbox Code Playgroud)@domain address, address, ...
将域中其他用户的邮件重定向到地址。
和
查找结果会被地址重写:当结果具有 形式时
@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 中可以找到有关别名的更多信息。
解释在文档中: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
归档时间: |
|
查看次数: |
13733 次 |
最近记录: |