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

Условное добавление строки к теме письма в Exim4

У меня есть собственное решение для реализации списков рассылки с использованием только Exim4 и базы данных SQL. По сути, большая часть тяжелой работы выполняется на одном маршрутизаторе, который проверяет различные условия, выполняет поиск членов списка, добавляет новые поля заголовка, изменяет тему и т. Д. Он также работает приемлемо хорошо для наших нужд, только с одной проблемой.

Я добавляю понятное имя списка рассылки к строке темы. В настоящее время имя списка добавляется каждый раз при прохождении письма, поэтому после долгих обсуждений строка темы выглядит как «[ListName] Re: [ListName] Re: [ListName] Re: ...». Очевидно, я хотел бы добавить имя списка только один раз, например его следует добавлять только в том случае, если тега имени еще нет в теме. Есть идеи, как проще всего этого добиться?

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

Спасибо за вашу помощь.

Попробуйте настроить префикс или тему в переменной ACL. Это можно сделать в ACL данных. Используйте эту переменную как новую тему в маршрутизаторе. Примерно так должно работать.

warn
    acl_m5 = $h_subject:
    !condition =  ${if match{$h_subject:}{/N[ListName]/N}}
    acl_m5 = [ListName]: $h_subject:

Вы также можете условно определить переменную в acl и заключить строку темы в условное включение.