将邮件请求从 mail.ourhost.net 转移到 pop/smtp/imap.otherhost.net

将邮件请求从 mail.ourhost.net 转移到 pop/smtp/imap.otherhost.net

内部邮件服务器出现一些问题,想要迁移到外部邮件提供商(pdd.yandex.ru)。

我知道如何传输用户及其邮件(非常感谢 Yandex 的 API),但在当前配置中,我们有一个主机作为 pop3/smtp/imap 服务器(mail.ourhost.net),现在我们需要使用三个不同的服务器 - pop/smtp/imap.yandex.ru。

主要问题是如何根据连接端口透明地将传入的用户请求从 mail.ourhost.net 传输到 pop.yandex.ru、smtp.yandex.ru 和 imap.yandex.ru。

有什么想法吗?谢谢。

答案1

您在 mail.outhost.net 上放置一台机器,将 POP3 端口上的流量中继到 pop.yandex.ru,将 IMAP4 端口上的流量中继到 imap.yandex.ru,等等。

开启IP转发(否则内核将丢弃重定向的数据包):

echo 1 >/proc/sys/net/ipv4/ip_forward

将端口 110 中继至 pop.yandex.ru:

iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination pop.yandex.ru
iptables -t nat -A POSTROUTING -p tcp -d W --dport 110 -j MASQUERADE

这存在许多问题:

  1. 您现在有一台需要维护的新机器。
  2. 该主机的带宽是 Yandex 服务器带宽的 2 倍。这可能很多!
  3. 您有一个单点故障。
  4. 如果 Yandex 更改其 IP 地址(或使用多个 IP),您将一直追踪 Yandex。

如果我要使用这项技术,我只会用它来查找尚未更改配置的用户。妥善记录哪些 IP 地址使用此服务,并确保尽快追踪这些人并正确配置他们的机器。

我不建议将此技术用作永久解决方案。如果您负担过重,以至于您的“临时”解决方案经常变成永久解决方案,那么根本不要这样做。相反,当您访问每台机器以正确配置它时,让人们暂时没有电子邮件。如果 Yandex 有网络邮件选项,他们可以在等待时使用它。重新配置客户端是可以使用 PowerShell 自动完成的事情;您实际上不应该访问每台机器。

对于新配置,您可以考虑使用像pop.yourcompany.com和 这样的主机名imap.yourcompany.com。将这些 CNAME 设置为 Yandex 服务器。如果您的公司规模很大,您可以考虑为每个用户创建一个 CNAME,这样这个pop-madhatter.youcompany.comCNAME 就可以指向任何特定的服务器。将来,您将能够一次移动一个用户。

相关内容