У меня есть собственное решение для реализации списков рассылки с использованием только 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 и заключить строку темы в условное включение.