Postfix:如何(以及为什么)设置/etc/aliases.db?

Postfix:如何(以及为什么)设置/etc/aliases.db?

我已经设置了 postfix 和一个本地用户myuser

电子邮件已[email protected]顺利到达,因此基本的后缀设置没问题。

然后我设置了虚拟别名:

[email protected]    [email protected]

在 main.cf 中:

mydestination: mydomain, localdomain
virtual_alias_maps = hash:/path_to_virtual_aliases

我还创建了数据库postmap /path_to_virtual_aliases

当我向 发送电子邮件时[email protected],出现以下错误:

postfix/local[2341]: error: open database /etc/aliases.db: No such file or directory
postfix/local[2341]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
postfix/local[2341]: warning: hash:/etc/aliases is unavailable. open database /etc/aliases.db: No such file or directory
postfix/local[2341]: warning: hash:/etc/aliases: lookup of 'myuser' failed
postfix/local[2340]: F1D9C233E9A: to=<myuser@localdomain>, orig_to=<[email protected]>, relay=local, delay=2239, delays=2239/0.03/0/0.02, dsn=4.3.0, status=deferred (alias database unavailable)

当 myuser 已经是本机用户时,为什么它要尝试查找它?

如果确实需要查找,是否可以通过设置 /etc/aliases 来解决问题?如果是的话,该怎么做?

答案1

我认为您混淆了在不同交付阶段使用的两种形式的别名。

  • 虚拟别名映射是 postfix 的一项功能,可以让它完全重新路由电子邮件。它们在某个阶段使用postfix 已经决定如何处理电子邮件,因此可用于将特定电子邮件重新路由到完全不同的电子邮件服务器。
  • 别名映射是 posftix 本地交付的一项功能,它允许当地的邮箱被别名为另一个当地的邮箱。它们在 postfix 决定在本地传送电子邮件之后的阶段使用,因此不能用于重新路由到另一台服务器。 看这里:

    描述:aliases(5) 表提供了一种系统范围的机制,可以为本地收件人重定向邮件。重定向由 Postfix local(8) 传送代理处理。


当 myuser 已经是本机用户时,为什么它要尝试查找它?

这适用于所有本地用户,并且在您收到未涵盖的邮件时非常有用虚拟别名域。例如,将许多系统服务的电子邮件重定向到一个邮箱。


如果确实需要查找,是否可以通过设置 /etc/aliases 来解决问题?如果是的话,该怎么做?

是的,只需创建一个空文件/etc/aliases,然后填充/etc/aliases.db文件邮政别名

postalias /etc/aliases

相关内容