如何在不破坏现有别名的情况下向 opensmtpd 添加一个 catchall 地址

如何在不破坏现有别名的情况下向 opensmtpd 添加一个 catchall 地址

我有一个可以运行的 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 配置文件中无需添加所有虚拟动作/匹配逻辑,也无需在已有的别名文件之外维护第二个映射表?

谢谢。

相关内容