2017-01-11 10 views
0

Я хочу создать спам-фильтр, похожий на Boxtrapper, SpamArrest, Gafana и Boxbe. Мне нужно переместить сообщение в другую папку в зависимости от пользовательских правил. Я рассмотрел следующее, но неясно, как указать Postfix для перемещения сообщения. Большинство протоколов фильтрации разрешают принимать или отклонять сообщение, без возможности перемещения сообщений. Я видел, что Sieve позволяет обрабатывать правила для перемещения почты, но не позволяет запускать специальные программы.Как приложения почтового фильтра работают для перемещения сообщений между почтовыми ящиками?

Возможно, есть фоновый процесс сканирования почтового ящика для отправки вызова/ответа? Похоже, что это было бы более эффективно, чем фильтр на основе крючков, а не на основе опроса.

ответ

2

Я использую плагин Sieve extprograms, чтобы мои скрипты Сита вызывали пользовательскую программу. Я использую эту функциональность для уведомления по электронной почте через Growl:

if anyof (true) 
{ 
     pipe :try :copy "growlmail"; 
} 

Для классификации спама, я использую SpamAssassin как postfix content_filter. Он переписывает строки темы сообщений спама (например, ****SPAM(12.5)**** This One Weird Trick....). Затем я получаю ресивер на основе:

if anyof (header :contains "Subject" "****SPAM") 
{ 
     fileinto "spam"; 
     stop; 
}