![如何在不破坏现有别名的情况下向 opensmtpd 添加一个 catchall 地址](https://linux22.com/image/775869/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E7%A0%B4%E5%9D%8F%E7%8E%B0%E6%9C%89%E5%88%AB%E5%90%8D%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%90%91%20opensmtpd%20%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA%20catchall%20%E5%9C%B0%E5%9D%80.png)
我有一个可以运行的 OpenSMTPD 配置,对此我很满意。
我没有 virtuser 文件,也没有在我的配置文件中的任何地方引用“domain_mail”或虚拟,该文件位于此处:
table aliases file:/usr/local/etc/mail/aliases
filter check_dyndns phase connect match rdns regex { '.*\.dyn\..*', '.*\.dsl\..*' } \
disconnect "550 no residential connections"
filter check_rdns phase connect match !rdns \
disconnect "550 no rDNS"
filter check_fcrdns phase connect match !fcrdns \
disconnect "550 no FCrDNS"
listen on 100.150.200.135 port 10028 tag DKIM
listen on 100.150.200.135 filter \
{ check_dyndns, check_rdns, check_fcrdns }
listen on 100.150.200.135 port submission
action "local_mail" mbox alias <aliases>
action "relay_dkim" relay host smtp+notls://100.150.200.135:10027
action "outbound" relay helo mail.example.com
match tag DKIM for any action "outbound"
match from any for domain "example.com" action "local_mail"
match from any auth for any action "outbound"
match for local action "local_mail"
match for any action "relay_dkim"
再次,一切都很顺利,我很高兴 - 我只想添加一个万能地址这样电子邮件就可以[电子邮件保护]可直接投进邮箱。
我认为这将是一个五分钟的修复 - 只需添加这样的一行:
@ catchall
... 到我的别名文件并完成。但是,opensmtpd 不允许这样简单方便的事情 - 您不能在别名文件中使用“@”catchall,即使这非常简单和安全并且有助于许多用例。
相反,我似乎需要将“@”规则放入 virtusertable 中,并将所有这些复杂性添加到我的(简洁而简单的)opensmtpd conf文件中。
两个小时过去了,我还没有成功。
我不明白如何使别名和虚拟一起工作,我不明白为什么我要删除所有工作别名并将它们移动到虚拟,但我也无法让它们两者很好地共存。
所以问题是:
如果我想要的虚拟用户只是简单的“@”集合,是否可以单独指定这个简单的规则,在 opensmtpd 配置文件中无需添加所有虚拟动作/匹配逻辑,也无需在已有的别名文件之外维护第二个映射表?
谢谢。