我知道使用 根据收件人域强制执行 TLS 非常简单smtpd_enforce_tls
。我有一个用例,我需要根据发送域对某些收件人域强制执行 TLS。这将在多租户环境中使用,其中一个租户可能不关心他们的邮件是否example.com
通过 TLS 发送,但另一个租户出于合规性原因需要强制执行。有没有办法实现这一点,而不必为每个租户创建单独的侦听器?
答案1
根据文档这是不可能的。当前的实现只能决定目的地;而不能决定来源。
答案2
简短的回答:不,因为这需要在 TLS 会话之前预先路由消息,这违背了使用它的目的;并且也没有办法在会话内部对其进行路由。
长话短说:你最好做以下其中一件事:
- 强制基于 TLS 的租户配置他们的 MUA 以开箱即用地使用 TLS,从而绕过整个问题。这不是问题,因为 postfix 很乐意同时运行加密和非加密侦听器;但是,如果用户不费心这样做,显然会产生问题,因为大多数自动配置邮件客户端都会探测端口并找到未加密的端口……等等。等等。等等。
- 强制所有连接都基于 TLS,这样每个人都可以透明地处理,因为您可以在端口 25 上运行 TLS,但不能运行 SSL。这将是最简单/最懒惰的选项,但我不知道您的配置或服务器容量,而且在高容量服务器上它可能不是最佳选择。