Exim 将主机名附加到完全限定的发件人地址

Mat*_*att 5 exim

我目前在公司电子邮件服务器上遇到问题,Exim 将其服务器主机名附加到发件人电子邮件地址的末尾,尽管该电子邮件地址已经完全合格。

例如,用户从以下地址发送电子邮件:

the.sender@mycompany.co.uk
Run Code Online (Sandbox Code Playgroud)

Exim 正在将其更改为:

"the.sender@mycompany.co.uk"@corp-2.mycompany.co.uk
Run Code Online (Sandbox Code Playgroud)

这不再是有效的电子邮件地址,因此接收邮件服务器通常会拒绝该邮件,因为它无法验证发件人。

Exim 配置位于: http: //pastebin.com/4nS6T1Aw

虚拟交付 (exim -bh) 的 Exim 输出:http://pastebin.com/UTXC8RuR

从表面上看,引号中发生了一些奇怪的事情,我认为 Exim 自己绊倒了,但我对此感到摸不着头脑,希望得到任何帮助!

谢谢

Tod*_*ons 3

在电子邮件的早期,电子邮件地址格式一般为user@hostname。通常,传递到邮件服务器的发件人只是用户名,邮件服务器会自动将其主机名附加到提供的用户名后。

在过去 15 年中,将邮件服务器配置为接受多个域(不仅仅是其主机名)的电子邮件变得更加常见,这通常称为“虚拟邮件”。当涉及到虚拟邮件时,邮件服务器必须弄清楚传递的参数何时只是本地用户名,或者是否是完整的电子邮件地址。当它不是完整的电子邮件地址时,您希望 Exim 附加主机名(或您指定的默认域),但如果它是电子邮件地址,您希望告诉 Exim 不要附加该主机名/域。

我的 MAIL acl 中有这个,它告诉 exim “保留发件人域”(这是一种迂回的方式,表示“域已提供,不要管它”)。

  accept  authenticated  = *
          control        = submission/sender_retain
          control        = dkim_disable_verify
          add_header     = X-Authenticated-Sender: ${sender_address}
          set acl_c_authenticated = 1
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你,托德。固定的。我的控制线是“control=submission/sender_retain/domain=”。删除空的“/domain=”修饰符修复了它!我意识到这个修改器是不必要的,除非我想改变发件人的域名(我没有),所以实际上我是清空了发件人的原始域名,然后让 Exim 尽可能地收拾残局。 (3认同)