多个 SMTP / IMAP 服务器的反向代理

多个 SMTP / IMAP 服务器的反向代理

我们不想给客户端提供像 IMAP / SMTP 服务器那样的服务器名称beta.example.com,而是想使用smtp.example.com

我们拥有所有域/电子邮件服务器和相应邮件服务器的数据库。有没有办法使用 nginx(或其他服务器/服务)作为反向代理?然后 nginx 应该将请求转发到正确的服务器。

非常感谢

答案1

无需nginx在边界 SMTP 服务器前放置或任何其他形式的负载平衡器。如果配置不正确,可能会影响您成功投递邮件的能力。只需将您的服务器放在 DMZ 中即可。

传入流量将经过对话的一部分,然后您才能对其进行适当的路由。IMAP 用户将尝试登录。SMTP 服务器将处于命令状态RCPT TO,并可能尝试将同一封邮件发送到您被列为 MX 的不同域。

通常使用名称来表示smtp01.example.com服务器群。对于这些服务器中的每一个。您用于邮件服务器的域很少与服务器名称匹配。对于 SMTP、Web、IMAP、POP 等常见服务,除了主机名之外(或代替主机名),发布和使用服务名称也很常见。通过以相同优先级发布 MX 服务器来实现负载平衡。

  1. 在 DNS 中发布A邮件服务器 IP 地址的记录。AAAA如果要支持 IPv6,还需添加邮件服务器 IPv6 IP 的记录。(如果要配置 IPv4 和 IPv6 支持,则需要两个 PTR 记录。)
  2. 让您的 IP 提供商配置PTR记录以返回服务器的服务 (SMTP) 名称。这将使反向 DNS (rDNS) 验证能够正常工作。
  3. 配置您的邮件服务器以便在发送电子邮件时绑定到上述地址。
  4. HELO配置邮件服务器以使用服务名称作为其标识。这将允许 rDNS 验证在或命令上工作EHLO

考虑像每个 SMTP 服务器的 DNS 条目一样添加 SPF 记录v=spf1 a -all。这将允许收件人验证此服务器是否打算发送邮件。(SPF 可用于验证服务器以及发件人。)

虽然 MX 服务器通常也是出站邮件服务器,但这并不是必须的。在电子邮件地址中使用的域的 SPF 记录中列出出站 SMTP 服务器(通常example.com而不是george.example.com)。

您的 SMTP 服务器应属于一个域。域的 MX 服务器不必位于同一个域中。如果您要配置多个域,请为邮件服务器选择一个服务器,并将其用于所有域。

在较大的安装中,边界(面向外部)SMTP 服务器通常会转发到内部邮件服务器以最终递送传入邮件。所有传出邮件都应发送到边界服务器进行递送。如果您已将传入 MX(邮件交换)服务器与传出 MTA(邮件传输代理)服务器分开,则传出邮件应通过传出 MTA 而不是 MX 服务器发送。MX无论如何,将其包含在 SPF 记录中都是一个好主意。这将允许您的 MX 服务器发送延迟递送通知,而不会将邮件视为垃圾邮件。

对于漫游用户,您可能需要经过身份验证的 SMTP 访问权限,以允许用户发送电子邮件。最好在提交端口 (587) 上执行此操作,而不是在 SMTP 端口 (25) 上执行此操作。startTLS连接后,应使用命令通过 TLS (SSL) 进行保护。身份验证应仅在加密连接上允许。这可以在上述配置的服务器上提供,也可以在提供 IMAP 访问的服务器上提供。

根据您的需要,您可以使用支持代理连接的 IMAP 服务器,或者仅允许用户连接到其域的服务器。通常使用服务域来实现此目的,通常是imap.example.commail.example.com。这些可以在 DNS 中配置为A记录或CNAMES。许多邮​​件客户端将自动正确配置为域的通用服务帐户。如果在配置期间输入 为用户,则[email protected]软件可能会找到 、 和 等服务域。mail.example.comimap.example.comIMAP 和 STMP 流量使用不同的服务名称是比较常见的。pop.example.comsmtp.example.com.

相关内容