Назад | Перейти на главную страницу

Информация заголовка sendmail для нескольких виртуальных хостов Centos Apache

Например, 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 к example@gmail.com, отправить оригинал по электронной почте показать много информации о 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 <example@gmail.com>
        ...
        ...
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>

Да. Настоящий sendmail который маршрутизирует сообщения, работает в фоновом режиме. В sendmail_path только говорит, как apache / php отправляет сообщения на фактический фон sendmail

Проблема в том, что sendmail не может динамически использовать несколько имен хостов. Если вы хотите удалить example_1 из Received заголовки и т.п., у вас есть следующие альтернативные пути:

  1. Настроить другой sendmail процесс на том же хосте, с другой конфигурацией confDOMAIN_NAME (кровавые подробности можно найти в Google).
  2. В качестве альтернативы можно изменить имя хоста сервера на какой-нибудь третий домен с нейтральным звучанием. + Изменить /etc/hosts файл, чтобы первая запись на 1.2.3.4 является host.neutral-domain-3.com. (Тот факт, что в настоящее время первая запись example_1.example_1.com очень вероятно, причина, по которой это есть в заголовках писем). Если example_1.example_1.com продолжает отображаться в заголовках, проверьте, не исправлено ли это явно где-нибудь в конфигурации sendmail, и тоже измените его.
  3. Либо примите заголовки такими, какие они есть сейчас. Это не очень заметно для пользователей.

Пожалуйста, также убедитесь не использовать доменные имена с подчеркиванием _ персонаж.