Вы все верно подметили.
Я сам недавно отловил этот баг в Xams, все письма что отправляются на алиасы не проверяются спам-фильтром и антивирусом.
Проблема в макросах SQL_VIRUS_IN и SQL_SPAM_IN в файле exim-sql-macros.conf.
Когда письмо приходит на алиас эти макросы возвращают пустую строку что интерпретируется как выключение спам-фильтра и антивируса.
Для исправления пришлось попотеть, вот решение:В файл exim-sql-macros.conf добавляем макрос
SQL_ISALIAS = mysql {\
SELECT LOWER(a.leftpart) \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_aliases a \
ON s.id = a.siteid \
WHERE a.leftpart = '${quote_mysql:$acl_m1}' \
AND d.name = '${quote_mysql:$acl_m2}'}
Теперь открываем exim.conf
Переходим примерно на строчку 281 (строка "# For outgoing messages if user wants to")
Именно там выполняются макросы SQL_SPAM_IN и SQL_SPAM_OUT.
После них добавляем свое выражение
warn condition = ${if eq {${lookup SQL_ISALIAS}}{${acl_m1}}{1}{0} }
log_message = Is alias ($acl_m0)
set acl_m6 =
Это включит спам фильтр если письмо отправлено на алиас.
Теперь нужно исправить тоже самое но для антивируса.
Переходим примерно на строчку 416, где выполняется макрос SQL_VIRUS_IN.
В этом же выражении заменяем значение condition на
condition = ${if or {{eq{${lookup SQL_VIRUS_IN}}{${acl_m0}}}{eq{${lookup SQL_ISALIAS}}{${acl_m1}}}}{1}{0}}
Все остальное оставляем без изменений.
Всю эту информацию отправил разработчикам, надеюсь исправят эту ошибку в следующих версиях.