例如Centos 6.8,服务器ip 1.2.3.4,里面添加了一些域名vhost.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin email@example_1.com
ServerName example_1.com
ServerAlias www.example_1.com
DocumentRoot /srv/www/example_1.com/public_html/
ErrorLog /srv/www/example_1.com/logs/error.log
CustomLog /srv/www/example_1.com/logs/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin email@example_2.com
ServerName example_2.com
ServerAlias www.example_2.com
DocumentRoot /srv/www/example_2.com/public_html/
ErrorLog /srv/www/example_2.com/logs/error.log
CustomLog /srv/www/example_2.com/logs/access.log combined
</VirtualHost>
并etc/hosts
归档
127.0.0.1 localhost.localdomain localhost
1.2.3.4 example_1.example_1.com example_1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
例如,如果我从 发送电子邮件example_2.com
到[email protected]
,电子邮件原始内容会显示大量有关 的信息example_1.com
。
Return-Path: <no-reply@example_2.com>
Received: from example_1.example_1.com (example_1.com. [...])
by mx.google.com with ESMTPS id ...
for <[email protected]>
...
...
Received-SPF: pass (google.com: domain of no-reply@example_2.com designates ... as permitted sender) client-ip=...;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of no-reply@example_2.com designates ... as permitted sender) smtp.mailfrom=no-reply@example_2.com;
dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com
Received: by example_1.example_1.com (...) with ESMTP id ...;
Received: (from apache@localhost) by example_1.example_1.com ...
X-Authentication-Warning: example_1.example_1.com: apache set sender to no-reply@example_2.com using -f
我如何才能将标题信息从“全部关于”更改example_1.com
为example_2.com
“我发送电子邮件时” example_2.com
?
我尝试过vhost.conf
像下面这样进行更改但仍然不起作用。
<VirtualHost *:80>
ServerAdmin email@example_2.com
ServerName example_2.com
ServerAlias www.example_2.com
DocumentRoot /srv/www/example_2.com/public_html/
ErrorLog /srv/www/example_2.com/logs/error.log
CustomLog /srv/www/example_2.com/logs/access.log combined
<Directory /srv/www/example_2.com/public_html/>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fno-reply@example_2.com"
</Directory>
</VirtualHost>
答案1
sendmail
是的。路由消息的实际工作在后台进行。sendmail_path
唯一说明的是 apache/php 如何将消息提交到实际的后台sendmail
问题是sendmail
无法动态使用多个主机名。如果您想从Received
标题和类似内容中消除 example_1,则可以使用以下替代方法:
- 在同一主机上设置另一个
sendmail
进程,并使用不同的配置confDOMAIN_NAME
(详细信息请谷歌搜索)。 - 或者,将服务器的主机名更改为第三个听起来中性的域。更改
/etc/hosts
文件,使 上的第一个条目1.2.3.4
为host.neutral-domain-3.com
。(目前第一个条目为example_1.example_1.com
很可能就是邮件标头中出现此条目的原因)。如果 继续example_1.example_1.com
显示在标头中,请检查 sendmail 配置中的某个地方是否明确修复了此问题,并对其进行更改。 - 或者,接受现在的标头。它对用户来说不太明显。
还请确保不是使用带有下划线_
字符的域名。