我目前在公司电子邮件服务器上遇到一个问题,Exim 将其服务器主机名附加到发件人电子邮件地址的末尾,尽管该电子邮件地址已经完全合格。
例如,用户从以下地址发送电子邮件:
[email protected]
Exim 将其改为:
"[email protected]"@corp-2.mycompany.co.uk
这不再是一个有效的电子邮件地址,因此接收邮件服务器通常会拒绝该消息,因为它无法验证发件人。
Exim 配置为:http://pastebin.com/4nS6T1Aw
虚拟交付(exim -bh)的 Exim 输出位于:http://pastebin.com/UTXC8RuR
从外观上看,引号中发生了一些奇怪的事情,我认为 Exim 自己搞错了,但是我对这个问题很困惑,如果能得到任何帮助我将不胜感激!
谢谢
答案1
在电子邮件的早期,电子邮件地址格式通常是用户@主机名。通常,传递给邮件服务器的发件人只是用户名,邮件服务器会自动将其主机名附加到提供的用户名之后。
在过去 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