Exim предоставляет возможность проверить ваши ACL через CLI, используя exim -bh. Однако этот метод открывает SMTP-соединение, и вы можете тестировать только SMTP ACL. Я хочу отладить и протестировать ACL acl_not_smtp - есть ли аналогичный способ сделать это?
В качестве альтернативы, если кто-нибудь знает, почему это не работает в acl_not_smtp:
deny
message = Outgoing email is blocked for this domain. Please contact support for assistance.
senders = /etc/exim_blacklist_users
Это было бы чрезвычайно полезно. Это работает в acl_smtp_rcpt.
Exim не имеет режима тестирования для локального, так как режим -bh имитирует соединение smtp. Так что вам придется делать это с реальным посланием.
Я бы создал образец сообщения с полными заголовками и телом "sample.eml". Сделайте это по адресу, который вы контролируете, в тестовый почтовый ящик или что-то в этом роде. Сделайте это с адреса, который вы хотите отклонить. Передайте сообщение в Exim, используя простую командную строку:
# No real output
exim -bm -t < "sample.eml"
# Get verbose output, but still not much
exim -v -bm -t < "sample.eml"
# Here's where we figure things out: debug
exim -d+all -bm -t < "sample.eml"
Последний произведет МНОГО вывода, поэтому, возможно, перенаправьте его в текстовый файл и просмотрите этот файл. Посмотрите, как он обрабатывает этот не-smtp acl при обработке этого сообщения. Вы найдете там ответ. Или обновите вопрос, добавив данные отладки для этого ACL, и мы доработаем наш ответ.
Другой вариант - настроить ваше приложение, которое отправляет эти сообщения, для отправки с использованием SMTP на 127.0.0.1 порт 25, вместо передачи сообщения в / usr / sbin / sendmail (который является оболочкой совместимости sendmail для exim). Тогда он будет использовать smtp rcpt acl.