包含远程收件人的 Exim 邮件列表

包含远程收件人的 Exim 邮件列表

前提(虚构名称)

  • foo是一个外部的域,其中 MTA 不受我的控制;
  • foo防晒指数设置使得mine服务器无法发送电子邮件@foo
  • bar另一个外部域,其中 MTA 也不在我的控制范围内;
  • barSPF 检查对收到的邮件进行明确拒绝失败(RFC 建议和常见做法);
  • mine本地域名其中 MTA 是我正在配置的 exim,它已经运行了好几年,但直到现在我们才注意到异常行为;
  • List <list@mine>邮件列表其中一个Bob <bob@foo>是成员(注意:实际上这也可以是一个“转发地址”,但用列表来思考会更简单);
  • list@mine成员存储在mysql上数据库在其他地方进行管理(这意味着它不是一个静态列表);
  • Alice <alice@bar>想要发送一封电邮 List <list@mine>

我需要的

简洁版本

如何配置(无需重新编译)exim,以便Alice可以发送一封电子邮件到,List该电子邮件将被重定向到Bob

长版本

@mine这种配置已经工作了好几年,适用于发送方或所有接收方都是的情况@mine。配置如下:

open_lists:
  driver = redirect
  data = ${lookup mysql{...}}}
  forbid_pipe
  forbid_file
  no_more

什么不起作用:发送者和接收者都是外部的情况。

为什么:出于某种原因(这就是我所说的不当行为),exim 保留了原始的信封发件人(又名 RFC 中的 MAIL FROM),bar由于 SPF 失败而被拒绝。

我知道脊髓灰质炎病毒和它的在exim上的实验实现。然而,除了实验性之外,它需要重新编译才能启用。如果有更新的 ubuntu,那就不会很糟糕了苯甲酸已经准备好编译好的包,但我还没有找到。

我也知道进出口银行的改写它有一个用于更改信封发件人 (From) 的标志F,但该标志不能与 一起使用headers_rewrite。它仅在重写部分可用。

基本上我正在寻找一种方法来修复信封发件人在这种情况下list@mine,无论是通过重写还是 SRS,它都必须是可维护的。

答案1

你可能想尝试签署返回路径地址。 我的实现假设本地域,但我见过类似的方法用于转发地址。处理退回邮件稍微困难一些,因为您需要从签名地址重建目标地址。

如果您要转发外部地址,您可能需要添加发件人或重新发送标头。这可能会解决收件人系统验证发件人地址的问题。

我正在使用 Ubuntu 的 Exim 重型版本,在某些情况下它会添加一些重新发送的标头。

答案2

相关内容