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

Как заставить exim на сервере с несколькими доменами отправлять каждую почту со своего собственного домена, а не с имени хоста сервера?

Предположим, у меня есть VPS с несколькими выделенными IP-адресами и несколькими доменами:

domain-a.com является основным доменом, а имя хоста сервера server.domain-a.com

Кажется, все в порядке, пока я не обнаружу, что электронные письма SMTP, отправленные с помощью Exim 4.72, отскакивают, не работают или помечаются как спам для многих доменов. Покопавшись, я обнаружил несоответствия: для писем из каждого домена HELO из server.domain-a.com.


Например, я вижу это в заголовках писем, которые я отправляю в Gmail:

Received: from server.domain-a.com (mail.domain-c.com. [33.33.33.33])

И сервис тестирования почты вроде https://www.mail-tester.com/ говорит мне:

Ваш обратный DNS не совпадает с вашим отправляющим доменом.

Ваш IP-адрес 33.33.33.33 связан с доменом mail.domain-c.com.

Тем не менее ваше сообщение, похоже, отправлено с server.domain-a.com.

Вы можете изменить DNS-запись указателя (типа PTR) и имя хоста вашего сервера на одно и то же значение.

Вот проверенные значения для этой проверки:

IP: 33.33.33.33
HELO: server.domain-a.com
rDNS: mail.domain-c.com

Но, очевидно, я не могу указать server.domain-a.com в доменах a, b и c одновременно, и в любом случае я не обязательно хочу, чтобы domain-c.com отправлял через domain-a.com - давайте предположим, что это независимые компании, которые случайно размещены на одном сервер.

Как я могу настроить exim для отправки каждого электронного письма из собственного домена и на HELO из домена почтового сервера, а не из основного имени хоста сервера?

Чтобы заголовки выглядели так:

Received: from mail.domain-c.com (mail.domain-c.com. [33.33.33.33])

И результаты тестирования сообщают следующее:

IP: 33.33.33.33
HELO: mail.domain-c.com
rDNS: mail.domain-c.com

Я нашел решение этого же вопроса для IP-адресов, именно так я отправляю почту с разных IP-адресов, поэтому я уверен, что для доменов должно быть аналогичное решение.

В своих исследованиях я смог найти только это решение но это зависит от cP *** l и W * M и файла /etc/mailhelo который существует только в cP *** l. Очевидно, что это возможно, но это решение зависит от некоторых скрытых габбинов, запеченных в cP *** l, которые я не использую.


Операционная система - CentOS, если это необходимо.

Что ж, это оказалось проще, чем ожидалось.

Я заметил свой файл настроек exim (/etc/exim/exim.conf) содержал эту закомментированную строку:

#helo_data = $sender_address_domain

Раскомментирование привело к тому, что HELO / from стал правильным доменом, просто пропустив mail. префикс.


Так что у меня сработало:

(1) Под remote_smtp: в моем конфигурационном файле exim, который в моей системе находился по адресу /etc/exim/exim.conf, добавив следующую строку:

helo_data = "mail.${sender_address_domain}"

(2) Перезапуск exim`a (в моей системе это было service exim restart)

(3) Вот и все


После внесения этого изменения такие службы, как Mail Tester, не находят проблем, и этот раздел моих заголовков сообщений выглядит нормально:

Received: from mail.domain-c.com (mail.domain-c.com. [33.33.33.33])

Имя хоста все равно появляется позже в заголовках электронной почты; Я задал об этом отдельный вопрос.