我正在为我的电子邮件使用 postfix。我知道我可以使用 /etc/aliases 和 newaliases 命令来重定向某些电子邮件,例如我可以通过放入root: user
我的 /etc/aliases 然后运行将 root@example.com 重定向到 user@example.com newaliases
。但是我想做 equivilant *: user
,以便所有发送到 example.com 的电子邮件都将发送到 user@example.com。
我该怎么做呢?
Jer*_*use 18
您正在寻找的是一个虚拟别名表,可以使用以下方法完成...
首先,您需要编辑或创建/etc/postfix/virtual文件(如果它不存在)。
example.com whatever
@example.com user@example.com
Run Code Online (Sandbox Code Playgroud)
保存后,您需要运行postmap /etc/postfix/virtual
以生成索引的/etc/postfix/virtual.db Postfix 将读取。
然后,您需要编辑/etc/postfix/main.cf并确保取消注释以下行:
virtual_alias_maps = hash:/etc/postfix/virtual
Run Code Online (Sandbox Code Playgroud)
这实际上会让 postfix 知道虚拟别名表并使用它。
luser_relay
正如其他人提到的那样,使用该选项的问题在于,本地交付代理将其视为对未知地址的最后手段的用户。如果 postfix 只处理一个域的邮件,这可以用于这一点,但它可以掩盖其他配置错误,如果处理多个域,可能会导致意外结果。
我觉得有必要提及的一个警告是,通过创建这种性质的通配符别名,您将打开您的邮件系统以接受不存在地址的邮件,并冒着邮箱因不存在而迅速被垃圾邮件填满的风险邮箱。
小智 9
其实很简单。您需要做的就是在您的main.cf
文件中放入如下内容:
virtual_alias_maps = regexp:/etc/postfix/virtual_alias
Run Code Online (Sandbox Code Playgroud)
这regexp
部分可以解决问题。另外,/etc/postfix/virtual_alias
你把这样的东西:
/^test/ you@yourdomain.com
Run Code Online (Sandbox Code Playgroud)
在本例中,您应该收到所有目的地以“test”开头的邮件。不要忘记 postmap /etc/postfix/virtual_alias 并重新加载 postfix。
结合上
面对我来说最简单的答案/评论(我有一个主域):将以下内容添加到/etc/postfix/main.cf
:
luser_relay = user@domain.com (or local system user)
local_recipient_maps =
Run Code Online (Sandbox Code Playgroud)
(local_recipient_maps =
没有设置值)
我使用本地用户 linux 帐户,并将相同的用户添加到 /etc/aliases,以便用户将所有邮件发送到 root、postmaster 等。
您还可以在您的同一地址中组合此相同的地址,virtual_alias_maps
并将任何虚拟域集水器指向同一个主帐户。
请咨询luser_relay了解更多信息。
小智 5
如果您想对 mydomain 使用包罗万象的地址,可以/etc/aliases
与正则表达式结合使用,如下所示:
在/etc/postfix/main.cf
添加
alias_maps = hash:/etc/aliases, regexp:/etc/postfix/catch-all-local.regexp
在/etc/postfix/catch-all-local.regexp
添加
!/^owner-/ your-catch-all-user
这应该可以解决问题。它对我有用,并且可以与并行设置的 virtual_alias_maps 一起使用。