Рейтинг:0

Как настроить EXIM для проверки записи SPF для входящих электронных писем и добавления заголовка «Received SPF» во входящие электронные письма?

флаг by

Я играю с Exim и создал почтовый сервер, который может принимать и отправлять электронные письма. Теперь я хочу включить проверку SPF для каждого входящего письма, чтобы Получен SPF К этим письмам добавляется заголовок. Но я не могу понять, как это сделать.

Док говорит, Поддержка проверки SPF встроена в Exim, если SUPPORT_SPF=yes установлен в Local/Makefile. В поддержке используется библиотека libspf2 https://www.libspf2.org/.

Но я полагаю, что эту опцию можно установить только в yes, если он/она собирает Exim из исходников. Я установил его прямо из пакета ubuntu (думаю, тогда автоматически устанавливается libspf2) и не знаю, где находится Локальный/Makefile является. Я почти уверен, что это можно сделать довольно легко, но я понятия не имею об этом прямо сейчас.

Я также проверил каталог конфигурации Exim и нашел следующий соответствующий фрагмент кода в 30_exim4-config_check_rcpt файл.

Здесь ясно сказано, что Exim проверит запись SPF отправителя после команды RCPT, если проверка SPF включена и spf-инструменты-perl установлено. я установил spf-инструменты-perl и до сих пор не видел Получен SPF заголовок. Итак, напрашивается два вопроса.

  1. Как включить проверку SPF, чтобы разрешить выполнение этого кода?
  2. Почему spf-tools-perl, поскольку документ ясно говорит, что Exim использует libspf. Зачем тогда две библиотеки?
  # Используйте spfquery для выполнения пары проверок SPF.
  #
  # Это довольно затратно с точки зрения DNS-запросов (~6 запросов на почту). Не делайте
  # включить, если это проблема. Также обратите внимание, что если вы включите это, вы должны
  # установите "spf-tools-perl", который предоставляет команду spfquery.
  # Отсутствие spf-tools-perl вызовет «Непредвиденную ошибку в
  Предупреждение # Проверка SPF.
  .ifdef CHECK_RCPT_SPF
  Отрицать
    message = [SPF] $sender_host_address не разрешено отправлять почту с \
              ${if def:sender_address_domain {$sender_address_domain}{$sender_helo_name}}.
    log_message = проверка SPF не удалась.
    !acl = acl_local_deny_exceptions
    условие = ${run{/usr/bin/spfquery.mail-spf-perl --ip \
                   ${quote:$sender_host_address} --identity \
                   ${if def:sender_address_domain \
                       {--scope mfrom --identity ${quote:$sender_address}}\
                       {--scope helo --identity ${quote:$sender_helo_name}}}}\
                   {нет}{${if eq {$runrc}{1}{да}{нет}}}}

  откладывать
    message = Временная ошибка DNS при проверке записи SPF. Попробуйте позже.
    !acl = acl_local_deny_exceptions
    условие = ${if eq {$runrc}{5}{да}{нет}}

  предупреждать
    условие = ${if <={$runrc}{6}{да}{нет}}
    add_header = Received-SPF: ${if eq {$runrc}{0}{pass}\
                                {${if eq {$runrc}{2}{softfail}\
                                 {${if eq {$runrc}{3}{нейтральный}\
                  {${if eq {$runrc}{4}{постоянная ошибка}\
                   {${if eq {$runrc}{6}{none}{error}}}}}}}}}\
                } клиент-ip=$sender_host_address; \
                ${if def:sender_address_domain \
                   {конверт-от=${sender_address}; {}}\
                helo=$sender_helo_name

  предупреждать
    log_message = Непредвиденная ошибка при проверке SPF.
    условие = ${if >{$runrc}{6}{да}{нет}}
  .endif```  

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.