Centos Apache 多虚拟主机 sendmail 头信息

Centos Apache 多虚拟主机 sendmail 头信息

例如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.comexample_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,则可以使用以下替代方法:

  1. 在同一主机上设置另一个sendmail进程,并使用不同的配置 confDOMAIN_NAME(详细信息请谷歌搜索)。
  2. 或者,将服务器的主机名更改为第三个听起来中性的域。更改/etc/hosts文件,使 上的第一个条目1.2.3.4host.neutral-domain-3.com。(目前第一个条目为example_1.example_1.com很可能就是邮件标头中出现此条目的原因)。如果 继续example_1.example_1.com显示在标头中,请检查 sendmail 配置中的某个地方是否明确修复了此问题,并对其进行更改。
  3. 或者,接受现在的标头。它对用户来说不太明显。

还请确保不是使用带有下划线_字符的域名。

相关内容