Предположим, у меня есть VPS с несколькими выделенными IP-адресами и несколькими доменами:
domain-a.com
на 11.11.11.11
, mx - это mail.domain-a.com
domain-b.com
на 22.22.22.22
, mx - это mail.domain-b.com
domain-c.com
на 33.33.33.33
, mx - это mail.domain-c.com
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])
Имя хоста все равно появляется позже в заголовках электронной почты; Я задал об этом отдельный вопрос.