我目前有两台服务器
first.mydomain.com
(ip:ABC28)和second.mydomain.com
(IP:ABC30)
两个服务器都有 DNS 和反向 DNS 条目,例如 ABC30 ->second.mydomain.com
-处理first.mydomain.com
来自/发往 mydomain.com 的所有电子邮件(例如墨西哥指向)mydomain.com
first.mydomain.com
配置为second
(exim/dovecot)用于处理其他两个域的电子邮件。(virt1.com
和virt2.com
)。墨西哥记录没问题,
virt1.com mail is handled by 100 second.mydomain.com
所有基本功能均正常 (TLS、dovecot-auth 等)。 接收电子邮件正常 - 发送至/home/mail/virt1.com/user/Maildir
。 外发邮件也正常发送 (但很奇怪),因此路由器和传输正常,但是:
例如,当:通过[email protected]
发送电子邮件时,标题中出现了奇怪的东西。[email protected]
second.mydomain.com
Return-Path: <"[email protected]"@mydomain.com>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ??? - added mydomain
Received: ... deleted ...
Received: ... deleted ...
Received: from somedsl.someisp.com ([X.X.X.X]:21563 helo=marvin.local)
by second.mydomain.com with esmtpsa (TLSv1:DHE-RSA-CAMELLIA256-SHA:256)
(Exim 4.80.1 (FreeBSD))
(envelope-from <"[email protected]"@second.mydomain.com>)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ??? added FQDN
id 1UVf91-000ALf-fb
for [email protected]; Fri, 26 Apr 2013 11:40:43 +0200
Date: Fri, 26 Apr 2013 11:40:42 +0200
From: username <[email protected]>
Reply-To: [email protected]
To: [email protected]
Subject: test message
Sender: "[email protected]"@second.mydomain.com
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ??? added the FQDN again
我的 exim 配置的开始是:
local_interfaces = A.B.C.30
primary_hostname = second.mydomain.com
domainlist local_domains = dsearch;/etc/mail/virtual #each domain has its own subdir
但是,还没有任何重写规则。
问题:
- 我应该将设置
smtp_active_hostname
为某些东西,而不是second.mydomain.com
? - 需要设置一些头重写规则吗?(可能需要)
- 我还应该检查什么?
- 有什么想法可以摆脱上述奇怪的标题吗?
以上内容在一个 freebsd jail 中运行,但这可能并不重要......
答案1
第一个邮件服务器(Exim 就是从一个非常早期的邮件服务器衍生而来的)是在人们普遍使用电子邮件地址的时候设计的。[电子邮件保护]属于名为“userX”的真实 unix 用户。因此,当它构造发件人标头和其他标头时,它将使用用户名 @ default_domainname。用户名部分在 Exim 中称为 local_part。
在现代系统中,虚拟用户更为常见,其中 exim 服务器可以接收发送到非默认域的电子邮件,并且 local_part 可能不是有效的本地用户,或者可能有多个电子邮件地址都具有相同的 local_part。在这样的系统中,更常见的是作为“[电子邮件保护]“。除非您另行配置,否则 Exim 内部将把整个字符串视为用户名。
http://www.exim.org/exim-html-current/doc/html/spec_html/ch-message_processing.html#SECTsubmodnon
该control = submission
行告诉 exim 对提交的消息应用某些修复,包括创建您提到的那些标题。将其更改为:
control = submission/sender_retain
表示你希望 Exim 将提交的名称视为完整名称[电子邮件保护]而不仅仅是 local_part,这意味着 exim 不会尝试将默认域名附加到提交的内容中。上面链接的 exim 文档对整个消息提交和修复过程进行了详细介绍。