Exim4 ACL - не Может установить глобальный ratelimit

Это - первый раз, когда я отправляю на этом форуме, но так как я нашел, что некоторые вовлекают мою проблему, я надеюсь, что найду решение.

Я думаю, что я хочу сделать, очень просто.

У меня есть веб-сервер, работающий exim4, и я хочу ограничить общую сумму почты, которую может отправить exim.

Я добавил следующие acl определения основному файлу конфигурации:

acl_check_not_smtp:

    warn ratelimit = 0 / 1h / strict / $sender_address_local_part
    log_message = Sender rate $sender_rate / $sender_rate_period

acl_not_smtp:

    deny message = Sender rate overlimit - $sender_rate / $sender_rate_period
    ratelimit = 1 / 30m / strict

    #System-wide rate limit
    defer message = Sorry, too busy right now.
    ratelimit = 10 / 1h / $primary_hostname

    accept

Но как только я добавляю acl_not_smtp = acl_not_smtp, я получаю следующую ошибку:

Stopping MTA for restart:2014-11-13 22:12:47 Exim configuration error in line 433 of /var/lib/exim4/config.autogenerated.tmp: 
error in ACL: unknown ACL condition/modifier in "acl_not_smtp = acl_not_smtp"

Я читал и искал, но что-то ускользает от меня, Ваша справка будет значительно цениться.

Спасибо

-2
задан 14 November 2014 в 06:38
1 ответ

Имя "acl_not_smtp" является настройкой верхнего уровня. Вы можете присвоить ему одну команду или назначить ему сегмент с другим именем acl. Если вы ничего не назначаете, но у вас есть "acl_not_smtp" acl-сегмент в ACL, то Exim все равно будет использовать его, потому что это правильное имя. Примеры:

# Don't do any checking, just force Exim to accept:
acl_not_smtp = accept

# But here we actually declare which acl segment to use:
acl_not_smtp = acl_check_not_smtp

begin acl
acl_check_not_smtp:
  ...your ACL checks

Вы смешиваете их несовместимым образом.

Я подозреваю, что в верхней части вашей конфигурации acl_not_smtp = acl_check_not_smtp, но затем в секции ACL у вас есть оба acl-сегмента с именем acl_not_smtp (который вам пришлось добавить, потому что вы следовали некоторому "Как") и acl_check_not_smtp. Когда Exim пытается выяснить, что вызывать, он интерпретирует acl_not_smtp как дважды определенное (один раз в глобальной секции, говоря, что он будет обслуживаться acl_check_not_smtp, а затем снова определено его именем по умолчанию в ACL).

Решение заключается в объединении содержимого того, что вы добавили в acl_not_smtp в сегмент acl_check_not_smtp и удалении секции acl_not_smtp из ACL (если предположить, что она уже была добавлена... если она уже была там, то вам нужно показать нам больше вашей конфигурации)

.
1
ответ дан 5 December 2019 в 21:26

Теги

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