Когда exim4 отправляет HELO / EHLO, как мне настроить имя отправляемого хоста?


12

Почты из моей системы отклоняются, когда принимающий сервер выполняет HELO-проверку. Я считаю, что моя система отправляет неправильное доменное имя. Я бегу exim4. Поиск чего-либо в exim4 и доменах дает кошмарный список несущественных результатов. Точно так же поиск в Google для отклонений HELO приводит к появлению множества пользователей Outlook, которым необходимо включить аутентификацию SMTP. Я не могу понять этот простой вопрос: какое имя хоста отправляет exim и как мне его изменить?

К сожалению, я не могу посмотреть, что exim отправляет по проводам, поэтому я не могу отладить это сам. Я надеюсь, что кто-то имел эту проблему и просто знает :).

Ответы:


15

Предполагая, что ошибка сообщает о данных HELO / EHLO, вы хотите использовать опцию helo_data для транспорта smtp. По умолчанию используется $ primary_hostname.

remote_smtp:
    driver = smtp
    helo_data = host.example.com

Более подробная информация доступна в руководстве .

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


Благодарность! После еще 10 минут чтения о том, как вообще изменить настройку exim4 в системе на основе debian, я установил имя_хоста_монтирования в FQDN в /etc/exim4/exim4.conf.template и перезапустил exim4. Это сделало трюк! Мое имя хоста отличается от полного доменного имени, и я не использую minimal_dns, таким образом, исходная проблема. Кроме того, только изменив ссылку на руководство, я смог даже найти документы по primary_hostname (exim так погуглил!). Еще раз спасибо!

Вы, вероятно, не хотите обновлять этот файл. Я бы порекомендовал запустить update-exim4.conf --keepcomments, а затем скопировать /var/lib/exim4/config.autogenerated в /etc/exim4/exim4.conf и затем изменить этот файл.
Дэвид Пашли


3

В Debian (Lenny) я обнаружил, что вы указали имя хоста, /etc/hostnameно это не распознается до перезагрузки.

$ hostname newhostname

устанавливает его сразу (но теряется при перезагрузке, так что вам придется сделать два).

exim4, кажется, сообщает то же самое uname -n, и я обнаружил, что это полезный способ тестирования.


2

Какое имя хоста отправляет exim?

Имя HELO можно найти в логах exim4. Остановите демон exim4, затем перезапустите его вручную с включенной отладкой:

/usr/sbin/exim4 -bd -d+all 2>&1 | egrep 'HELO|EHLO'

(эта 2>&1|egrep 'HELO|EHLO'часть является необязательной, она просто перенаправляет stderr в stdout, затем направляет журнал в egrep, что отфильтрует все, кроме строк, содержащих HELO или EHLO).

Отправьте электронное письмо, и в следующей форме должна быть одна или две строки:

SMTP>> EHLO foobar.example.com

HELO зовут foobar.example.com.

Есть также несколько полезных инструментов онлайн-проверки, которые предоставляют эту информацию (и много других полезных), например:

  • https://www.mail-tester.com (будьте осторожны, только 3 бесплатных почтовых чека в день);
  • check-auth@verifier.port25.com (бесплатно);
  • mailtest@unlocktheinbox.com (большая часть отзывов не бесплатная, но для этого есть).

Как я могу изменить это?

Вместо того, чтобы редактировать транспортный файл, как это было предложено Дэвидом, я бы предпочел использовать определения констант exim4 (?) И задать имя в /etc/exim4/conf.d/main/00_local_settings(в раздельной конфигурации), например:

REMOTE_SMTP_HELO_DATA=$sender_address_domain

Не забудьте запустить update-exim4.confпрежде, чем перезапустить exim4.

Я установил имя_хоста […] в /etc/exim4/exim4.conf.template

Как упомянул Дэвид, это, вероятно, не лучшая идея. В раздельной конфигурации вы можете установить основное имя хоста, добавив

MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com

в /etc/exim4/conf.d/main/00_local_settings. Кажется, это будет PRIMARY_HOST_NAMEв монолитной конфигурации exim4.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.