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

LDA для Exim + SA

У меня есть почтовый сервер под управлением Exim и Dovecot, поддерживаемый MySQL для виртуальных пользователей. Spamassassin настроен и, похоже, работает разумно, но отправка помеченного спама в папку «спам» для получателя не настроена. Мы используем формат maildir для хранения.

Как я буду заниматься обработкой того, куда нужно доставлять почту? Я бы подумал, что procmail может это сделать, но я не вижу достойных конфигураций для этой конкретной настройки.

Вкратце: - Exim - Spamassassin - Виртуальные пользователи, корень каждого пользователя = / home / mail / $ domain / $ local_part - Хотите, например, доставлять спам в / home / mail / $ domain / $ local_part / spam /

TIA

Вот кое-что, что должно работать нормально. Я основывал это на стандартном маршрутизаторе / транспорте "локальной доставки", но добавил условия в заголовке X-Spam-Flag, который я устанавливаю ранее в соответствующем ACL. Если вы не знаете, как это сделать, дайте мне знать, и я исправлю ответ.

Я делаю нечто подобное, но на уровне домена, и моя установка, вероятно, не подойдет вам.

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

spamcheck:
 debug_print = "R: spamcheck for $local_part@$domain"
 driver = accept
 check_local_user
 user = mail
 condition = "${if def:h_X-Spam-Flag: {yes}{no}}"
 transport = local_spam_delivery

Теперь вам нужен транспорт local_spam_delivery, поэтому поместите его в любом месте вашего раздела транспортов:

local_spam_delivery:
 debug_print = "T: local_spam_delivery for $local_part@$domain"
 driver = appendfile
 directory = /home/mail/$domain/$local_part/spam/
 maildir_format
 delivery_date_add
 envelope_to_add
 return_path_add 

Если вы не хотите использовать его как maildir, удалите команду maildir_format. Возможно, вам придется немного изменить правила, особенно в отношении настроек пользователей и групп и т. Д.

Если в моем приведенном выше примере чего-то не хватает, я замечаю, что есть аналогичный пример, задокументированный Вот

Я придумал следующее, чтобы отправлять спам на почту под названием «Нежелательная почта» для каждого домена.

mysql_delivery:
   driver = appendfile
   maildir_format
   directory = "${if and { {def:h_X-Spam-Flag:} {eq {$h_X-Spam-Flag}{YES}}} {/home/mail/${domain}/${local_part}/.Junk}{/home/mail/${domain}/${local_part}} }"

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

Вы можете легко сделать это с помощью пары маршрутизаторов. Как вариант, вы можете использовать для этого файл фильтра exim.

В моем ~ / .forward есть следующее, но вы можете легко использовать что-то подобное для своего файла глобального фильтра.

if $spam_score_int is not "" then
   if $spam_score_int is above 49 then save $home/Maildir/.SPAM/ finish endif
endif

Использование вашего пути должно работать. Просто замените его в примере и не забудьте косую черту в конце, иначе вы можете выполнить доставку в формате mbox.