我有一个带有两个域的服务器。我收到标题中提到的警告:
不要在 mydestination 和 virtual_alias 中列出域 example.com
尽管我收到了上述警告,但它运行正常,没有任何问题。但我想知道如何修复它。
在两个地方都有域名的原因是因为我想要实现 catchall - 发送到 @domain.tld 的所有电子邮件都应发送到该域名的邮件帐户。
现在,如果我不将域名放入 mydestination,服务器将拒绝接受该域名的电子邮件,因为它不想成为开放中继。如果我不将 catchall 别名放入虚拟别名表中,catchall 就不起作用(显然)。
那么正确的解决方案是什么?我尝试阅读http://www.postfix.org/VIRTUAL_README.html#virtual_alias,但我似乎无法通过其他方式使我的设置正常工作。
(PS:我正在使用 webmin/virtualmin 来管理我的网站,当我尝试使用内置配置工具对其进行配置时,它会提出与我手动提供的相同的解决方案。因此,似乎 webmin 也不知道更好的方法来做到这一点......)
答案1
mydestination 的默认值为:
$myhostname, localhost.$mydomain, localhost
尝试将其设置为
localhost.$mydomain, localhost
而是。我收到过类似的警告,进行此更改不会影响我服务器上相关域的邮件传递。如果您仍然遇到问题,您可能应该发布您的 main.cf 和 virtual_alias 设置。
答案2
您不需要在 in 中列出的域virtual_alias_domains
来在 virtual_alias_map 中查找它。
来自虚拟(5)手册页:
可选的虚拟(5)别名表重写收件人地址全部本地、所有虚拟的以及所有远程邮件目的地。[强调添加]
virtual_alias_domains
是必须在虚拟别名映射中查找和找到地址的域名列表。
答案3
我的解决方案如下:
example.com
从......中去除mydestination
- 将虚拟别名替换
[email protected]
为mainuser
别名localmailbox@localhostname
(localhostname
可以是任何内容mydestination
)
我了解到 Virtualmin 通过在虚拟别名表中指定域名来创建所谓的“虚拟别名域”。Postfix 文档指出,在这种情况下,本地邮箱不能成为(直接)目标。
答案4
我在繁忙的 Virtualmin Ubuntu 20.04 邮件服务器上更改了这一点,我这样做了:
前:
mydestination = $myhostname, localhost.our-main-domain.com, , localhost
后:
mydestination = localhost.our-main-domain.com,,本地主机
这导致了灾难性的失败,因为消息开始被弹回。现在我不得不忍受这个警告,尽管在进行复杂的故障排除时它确实很烦人。
整个问题确实令人困惑,因为实际上在我的系统上我甚至找不到任何东西virtual_alias_domains
,而只是virtual
在磁盘上找到了一个叫做文件的东西,它似乎有这个“别名”。