我已经设置了 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