Вариант имени Алиеча

Мы пойдём своим путём!

Отделяем спам от почты с помощью sieve

Я писал об SpamAssassin не так давно. Ну вот отметили мы письмо как спам? И чего? Удалять его сразу? Нет, это сильно не вариант. Ибо всегда есть шанс того, что спамом оно не было, а пользователь его очень-очень ждал… И чего делать? Правильно — не удалять до определённого порога. Например мы отмечаем от пяти балов письма как спам, но удаляем сразу от двенадцати. Но и отдавать его во входящие пользователю тоже не красиво.

Но мы же можем его отсортировать в отдельную папку, прямо на сервере. В этом нам поможет sieve-скрипт следующего содержания:

require ["fileinto","imap4flags"];

if header :contains "X-Spam-Flag" ["YES"] {
	setflag "\\seen";
	fileinto "Junk";
	stop;
} else {
	# The rest goes into INBOX
	# default is "implicit keep", we do it explicitly here
	keep;
}

Данный скрипт всего лишь проверяет заголовок письма, и если там есть запись об уровне спаме, то письмо будет отправлено в папку «Junk», предварительно будучи отмеченным как прочитанное.

Для Dovecot’а надо ещё установить плагин dovecot-sieve, не забыть внести sieve в список плагинов lda и разрешить lda создавать и автоматически подписывать на папки:

lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes

protocol lda {
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins sieve
}

Для dovecot’a скрипт должен быть скомпилировать утилитой sievec. Исполнятся же он должен до скриптов пользователя. Я для этого его поместил в директорию и отметил директорию как sieve_before в настройках плагина sieve.

Кстати-кстати, полезность sieve-скриптов не ограничивается только этим примером. Вот, например, часто пользователи, используя функционал почтового клиента, осуществляют сортировку почты по отправителям. А это чревато, если клиентов больше одного. Тут же у вас есть возможность организовать подобные манипуляции на стороне сервера. И клиенты сами могут настроить себе подобный функционал, ведь для этого есть специальный протокол managesieve. Ну да, писать скрипты захочет не каждый пользователь. Но возможность сортировать сообщения на стороне сервера (и не только сортировать!) тех кому это реально нужно привлечет. А кому не нужно, тому и не нужно)

Один комментарий к Отделяем спам от почты с помощью sieve

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

26 − = 18