如何通过发件人域(而不是收件人、抄送人或密送人)路由 SMTP 邮件

如何通过发件人域(而不是收件人、抄送人或密送人)路由 SMTP 邮件

我负责处理多家公司的电子邮件。每家公司都需要我根据以下条件将所有出站电子邮件通过特定的 SMTP 中继路由:地址。

什么软件配置或技术允许我做到这一点?

我们是一家拥有 Exchange 2010 的 Windows 商店,但也愿意接受其他选项,例如 sendmail,甚至可以购买或找人构建自定义传输代理

答案1

假设您的 Exchange 机器将所有电子邮件转发到另一台运行 sendmail 的机器,您可以决定使用规则集 0 中的 $&f 宏根据发件人域进行路由。

LOCAL_RULE_0
# first make sure that local mail gets delivered properly
R$-        $@OK
R$* < @ $=w . > $*        $@OK
# now deal with senders
R$*        $: $>canonify $&f $| $1
# stuff [email protected] sends goes through server1.relay
Ruser1 < @ domain1.com. > $* $| $* < @ $* . > $*         $#esmtp $@ [server1.relay] $: $2 < @ $3 . > $4
# stuff [email protected] sends goes through server2.relay
Ruser2 < @ domain2.com. > $* $| $* < @ $* . > $*         $#esmtp $@ [server2.relay] $: $2 < @ $3 . > $4
# stuff users from domain3.com send goes through server3.relay
R$* < @ domain3.com. > $* $| $* < @ $* . > $*        $#esmtp $@ [server3.relay] $: $3 < @ $4 . > $5

上述规则应添加到您的/etc/mail/sendmail.mc.接下来你应该建立你的发送邮件配置文件并重新启动 sendmail。假设您使用的是 Debian 或 Ubuntu 系统,则可以通过发出 来完成此操作sendmailconfig。请记住,在上面的示例中,规则的左侧和右侧由制表符而不是空格分隔,因此您必须键入规则集,而不是复制粘贴。

答案2

好吧,我偏向于(并且熟悉)使用带有 Postfix 的 Linux 来进行前线 MTA 工作,所以这里有一个解决方案:

发送方相关的传输图

   domain transport:nexthop
          Deliver  mail  for domain through transport to next-hop.

答案3

如果您想使用 Linux/sendmail 执行此操作,我认为您需要设置一个智能表。详细信息可查阅这里

答案4

看这个: https://groups.gogle.com/forum/#!topic/comp.mail.sendmail/UQ5_TeaGd_c “在 smarttable.m4 中使用 LOCAL_RULE_0 代替 LOCAL_NET_CONFIG 来使 smarttable 路由消息甚至对本地收件人都有效。” 之后一切正常

相关内容