在使用 Windows Server 2022 的 Web 托管专用服务器上,五年来,我们一直通过 IIS 6.0 向平台上拥有 1 万名用户的客户每日发送邮件,从未出现任何问题。他们最近将策略更新为“外部”邮件(提供的产品仅供其内部使用,我们被视为外部公司),这意味着由于我们仅从单个 IP 地址发送邮件,因此我们的发送速率受到限制——导致每天(向特定收件人)发送 1 万封电子邮件最多需要 8 个小时,这对于我们希望及时向用户发送关键更新的情况来说并不理想(在此次策略变更之前的 5 年里,我们已经习惯了这种发送方式)。
他们的 IT 安全团队建议我们增加发送邮件的 IP 地址数量。
为了增加邮件的 IP 覆盖范围,我们为机器分配了一个额外的 IP 地址,在 IIS 6.0 中设置了一个额外的虚拟服务器,分配了 IP 地址后才发现机器的主 IP 将自己签名为所有邮件的来源,而额外的 IP 地址纯粹用于入站邮件,而不是我们尝试发送的出站邮件。
根据网上一些可疑的建议,我安装了 hMailServer,幻想着我可以使用它来创建多个服务器,并让它使用设置中的 IP 地址对出站邮件进行签名,但遗憾的是,这只是在源后添加了一个额外的跳转,似乎并不能解决问题。
我正在阅读有关使用 DNS Round-Robin 进行邮件传递、使用 HAProxy 作为负载均衡器等内容,但我根本不知道(最佳?)前进的方向。
出于安全考虑,我们希望将所有邮件保留在“内部”服务器,而不是使用第三方 SMTP 中继提供商。- 在 Windows 架构下,是否有任何方法可以解决此问题,并能够以相当均匀的方式跨多个 IP 地址发送多封邮件?我们是否需要研究基于 Linux 的虚拟机解决方案?
您是否解决过类似的问题?
选项 A:将负载分散到不同主机上的多个传出 SMTP IP 地址。
选项 B:收件人授予发送 IP 地址例外。
我同意评论者的观点,既然这个问题并非由真正的技术限制导致,而是由某些人的不明智行为造成的,那么为了解决这个问题,最好撤销该操作。就您而言,这相当于政策豁免。
如果这是政治游戏,那么你们的政客就做错了。有时,做决策的人根本不知道他们的决策是错误的,或者他们的想法之前被尝试过,但最终被证明不是最优的。作为一名专业的IT专家,你的职责就是让他们了解你专业领域中的最佳和不良做法。例如,额外的IP地址需要额外付费,因此提高你为该客户提供的服务费是合理的,这样他们就可以承担你由于他们固执的策略管理而产生的额外费用。但他们完全可以通过友好地配置策略来避免这种情况。管理层的人通常非常了解这种“金钱论”。
如果您已准备好设置基于 Postfix 的智能主机(例如 Linux 或某些 Unix 系统,因为 Windows 上没有 Postfix),您可以使用其
randmap
功能。使用方法如下:对于主 Postfix 实例,请在以下位置设置main.cf
:这些
relayX
名称是 SMTP 客户端(“发送方”)服务,定义master.cf
如下:根据你的喜好添加更多。它会随机选择一个中继。然后,你可以将此 Postfix 系统设置为你原始邮件程序的智能主机。
值得注意的是,在 DNS 中,的 PTR 记录
192.0.2.1
必须是,最好relay1.example.com
是relay1.example.com
包含单个 IP 地址的 A 记录192.0.2.1
,其他所有地址也应如此。此外,如果这些地址都属于同一个 /30 地址块,则必须将它们全部发布到“发件人”域的 SPF 记录中,如下所示:ip4:192.0.2.1, ip4:192.0.2.2 ip4:192.0.2.3
或a:relay1.example.com a:relay2.example.com a:relay3.example.com
,或任何简写形式,例如:ip4:192.0.2.0/30
。如果您仅打算使用此方法来解决速率限制问题,则无需通过 MX 查找来解析这些地址。事实上,当您开始像这样扩展系统时,合理的做法是设置一组专用地址仅用于接收邮件,仅在 MX 中发布;以及设置另一组专用地址(这组地址仅用于发送邮件,仅在 SPF 中发布)。