问题

问题

问题

我可以强制 Exim 将收件人未知的邮件转发到另一台主机吗?

设想

我希望以某种方式分阶段将 Exim 迁移到 Exchange,以便我能够在服务器之间移动各个帐户,同时保持所有帐户正常运行。

我的想法是:

  1. 配置 Exchange 充当内部中继,即,将无法识别的收件人中继到 Exim,
  2. 在 Exim 上执行类似的配置,并在两端强制实施任何形式的循环保护(针对两台服务器上都未知的消息),
  3. 将 Exim 保留为 MX 记录目标,直到暂存结束,
  4. 逐步在 Exchange 上创建新账户,同时在 Exim 上禁用这些账户

如果这个想法因任何原因听起来很糟糕,我也欢迎任何批评。

答案1

您可以结合 ACL 和路由器来实现这一点。

首先,您必须将所有消息通过 ACL 来验证特定帐户的存在:

acl_smtp_rcpt:
accept   domains = +local_domains
         !verify = recipient
   set acl_m_fwd = go2xchg
. . . . 
# all the rest rules

然后你必须添加路由器:

begin routers
xchg:
       driver = manualroute
    condition = {if eq{$acl_m_fwd}{go2xchg}}
   route_list = * 11.22.33.44 
    transport = remote_smtp
      no_more
. . . . 
# all the rest routers

其中 11.22.33.44 是 Exchange 服务器的 IP 地址。

答案2

由于您的 IP 是 11.22.33.44,因此您可以让 ACL 在检查中忽略此 IP。因此,如果消息来自该 IP,则不会转发。

hosts = !11.22.33.44

相关内容