我想要做的是设置一个 sendmail 服务器,它接受来自每个人的邮件到特定域(例如,example.com
),然后对于定义的收件人列表,将该邮件发送到指定的第三方地址,并将其他所有内容中继到特定的 IP地址。
我试过这个:
[root@splitter mail]# cat relay-domains
example.com
[root@splitter mail]# cat virtusertable
[email protected] [email protected]
并且大部分域的转发工作正常 - 它被传递到由example.com
MX 指定的主机 - 但异常 ( [email protected]
) 被忽略
我试过这个:
[root@splitter mail]# cat local-host-names
example.com
[root@splitter mail]# cat mailertable
example.com esmtp:[1.2.3.4]
[root@splitter mail]# cat virtusertable
[email protected] [email protected]
然后异常邮件被正确拆分,但任何其他用户在本地被退回(User unknown
)。我尝试将其添加到virtusertable
:
@example.com %[email protected]
但是(可能不足为奇)这会导致rewrite: excessive recursion (max 50), ruleset canonify
错误。
我更喜欢基于 sendmail 的解决方案,因为我可以快速尝试这些解决方案。如果我对此没有任何运气,我会向其他 MTA 开放。如果有人对如何做到这一点有任何想法,我会非常感激他们。
让我们试试这个:
如果你想让它适用于超过 10 个用户并且你需要让它与地图一起使用,这自然不能很好地扩展,但自 5/2014 以来我已经不再是 Postmaster,我有点生疏了。如果你愿意,我可以让它与外部地图一起工作。
一如既往地记住,
sendmail.mc
规则的左侧与右侧用制表符而不是空格分隔,所以不要复制粘贴。还记得重建你的sendmail.cf
事后并使用以下方法进行测试sendmail -bt
:如果一切正常,请重新启动 sendmail。