конфигурация exim4 с демоном SRS

Я - struggeling установка exim 4 с внешним демоном SRS (пакет Debian сэры). srsd выполняет и преобразовывает адреса назад и вперед очень хорошо. Я не могу использовать встроенный код сэров exim, так как он не включен в Debian (в, знают, что я могу скомпилировать меня, но это не опция).

То, с чем у меня есть проблемы, является srs_forward маршрутизатором в exim для добавления тегов SRS к пересланной почте. Я имею в распоряжении следующий маршрутизатор перенаправления, который должен работать только за несообщениями об ошибках от нелокальных отправителей и нелокальных получателей, которые не передаются для другого mx - по крайней мере, я понимаю сэров, чтобы быть примененным к таким сообщениям. Исправьте меня, если это неправильно. У меня есть следующий код:

srs_forward:
  debug_print = "R: srs_forward for $local_part@$domain"
  driver = redirect
  senders = ! :
  condition = ${if ! match_domain{$sender_address_domain}{+local_domains}}
  domains = ! +local_domains : ! +relay_to_domains
  address_data = ${readsocket{/tmp/srsd}\
                {FORWARD $sender_address_local_part@$sender_address_domain $domain\n}\
                                        {5s}{\n}{:defer: SRS daemon failure}}
  errors_to = ${quote_local_part:${local_part:$address_data}}@${domain:$address_data}
  data = ${quote_local_part:$local_part}@$domain
  headers_add = X-SRS: Sender address rewritten from $sender_address to ${quote_local_part:${local_part:$address_data}}@$$
  repeat_use = false
  allow_defer
  no_verify

Что я мог протестировать и работы: обратный канал получает сгенерированное право (строки с address_data и errors_to, а также кадресному (строка, запускающаяся с данных).

Я не уверен с предварительными условиями:

senders = ! : 

Эта строка должна препятствовать тому, чтобы маршрутизатор работал за сообщениями об ошибках.

condition = ${if ! match_domain{$sender_address_domain}{+local_domains}}

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

domains = ! +local_domains : ! +relay_to_domains

Эта строка должна препятствовать тому, чтобы маршрутизатор работал за сообщениями локальным получателям или за переданными сообщениями.

Кто-то мог разъясниться?

(Я использовал руководство в качестве начальной точки, хотя без успеха.)

3
задан 15 October 2015 в 00:16
1 ответ

Вы не выполнили тестирование должным образом. Ваша информация, которую вы передаете демону SRS, неверна:

FORWARD $sender_address_local_part@$sender_address_domain $domain\n

Это не делает то, что вы хотите: $ domain содержит домен получателя, а не домен отправителя. Ваше намерение переписать обратный путь к домену, которым было переадресовано сообщение, является почетным, но не работает так: сообщение попадает в ваш маршрутизатор SRS после пересылка уже была выполнена, поэтому $ domain не делает ' t больше не содержат домен, в который было отправлено сообщение. Вы должны использовать $ primary_hostname или $ original_domain. Итак, эта строка должна выглядеть так:

address_data = ${readsocket{/tmp/srsd}\
                {FORWARD $sender_address_local_part@$sender_address_domain $original_domain\n}\
                                    {5s}{\n}{:defer: SRS daemon failure}}

Что касается ваших предварительных условий, они в порядке. Вы можете взять строки «отправители» и «условие» вместе:

senders = ! : ! *@+local_domains

Вам просто нужно убедиться, что список доменов local_domains действительно содержит все ваши локальные домены (по крайней мере, он должен содержать для текущего маршрутизируемого сообщения $ original_domain и $ sender_address_domain).

Пожалуйста, задокументируйте свою конфигурацию, если ваш код работает, и дайте нам здесь несколько советов. Вам нужно организовать еще несколько вещей: списки ACL для проверки входящих сообщений с метками SRS, отключение тегов сообщений с тегами SRS для серого списка, удаление меток отказов, убедитесь, что не добавлены какие-либо другие теги, такие как BATV, к исходящим сообщениям; разбитый случай, перепишите текст сообщения об ошибке возврата, чтобы он не включал помеченный адрес отправителя SRS, возможно, запретите любые неотмеченные отказы и т.д. Спасибо!

0
ответ дан 3 December 2019 в 08:03

Теги

Похожие вопросы