The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Фильтрация исходящих почтовых сообщений с помощью sieve
Предпочитаю хранить почтовые дискуссии в одном месте, а не держать отправленные
письма отдельно в папке Sent, как это по умолчанию делают IMAP-клиенты. Поэтому
по добавлению новой почты в папку Sent я вызываю sieve-скрипт для её обработки.

Конфигурация

  • почтовый сервер dovecot, dovecot-imapd, dovecot-sieve
  • почта хранится в домашнем каталоге пользователя в формате maildir
  • для слежения за состоянием файловой системы используется incron Настройка Создаём скрипт, фильтрующий отправленные сообщения. Например, такой (расширение imap4flags нужно для сохранения флага \\seen у сообщения): require ["imap4flags", "fileinto", "variables", "date"]; # Сохраняем архив сообщений в папку archive.$год if currentdate :matches "year" "*" { set "archiveFolder" "archive.${1}"; } # Сообщения, отправленные самому себе. Нет смысла иметь копию, так что помещаем в Trash. if address :is "To" "user@example.com" { fileinto "Trash"; stop; } # Сообщения в списки рассылок сразы кладём в архив. if address :is "To" "debian-russian@lists.debian.org" { fileinto "${archiveFolder}"; stop; } # Если письмо является ответом на что-то, то кладём его в INBOX. if exists "In-Reply-To" { fileinto "INBOX"; } # Все прочие сообщения будут оставлены на своём месте. Проверяем скрипт на папке Sent (путь к месту расположения берётся из конфигурации dovecot). Скрипт выведет список действий, которые будут проведены с каждым письмом. Убеждаемся, что он делает именно то, что нужно: sieve-filter /path/to/script Sent Далее настраиваем таблицу incron. Для этого записываем в редакторе нижеприведённую при вызове incrontab -e. sieve-скрипт будет вызываться при перемещении новых писем в maildir-папку Sent и будет обрабатывать всё там находящееся. /home/user/Maildir/.Sent/cur IN_MOVED_TO /usr/bin/sieve-filter -e -W /path/to/script При следующей отправке письма папка отсортируется. Замечу, что подобным образом можно фильтровать любую другую папку при помещении в неё писем.
  •  
    02.01.2013 , Автор: Alexander Galanin
    Ключи: mail, sieve, filter, imap / Лицензия: CC-BY
    Раздел:    Корень / Администратору / Сетевые сервисы / Mail, почта / Борьба со спамом, фильтрация почты

    Обсуждение [ RSS ]
  • 1.1, pavlinux (ok), 23:52, 03/01/2013 [ответить]  
  • +/
    > Предпочитаю хранить почтовые дискуссии в одном месте,
    > а не держать отправленные письма отдельно в папке Sent,

    dbmail + postgres CLUSTER;  

    > почта хранится в домашнем каталоге пользователя в формате maildir

    Это статья для админов localhost ?

     
     
  • 2.2, Alexander Galanin (?), 13:34, 04/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> Предпочитаю хранить почтовые дискуссии в одном месте,
    >> а не держать отправленные письма отдельно в папке Sent,
    > dbmail + postgres CLUSTER;  

    Опишиnt эту связку, если есть что поведать миру. А то сейчас я не понимаю смысл комментария.

    >> почта хранится в домашнем каталоге пользователя в формате maildir
    > Это статья для админов localhost ?

    В таком виде требуется доступ к файловой системе. Как только dovecot будет поддерживать расширение imapsieve, можно будет обойтись без incron.

     

  • 1.3, исчо_адын_аноним (?), 13:38, 04/01/2013 [ответить]  
  • +/
    >Далее настраиваем таблицу incron. Для этого >записываем в редакторе
    >нижеприведённую при вызове incrontab -e. sieve->скрипт будет вызываться при
    >перемещении новых писем в maildir-папку Sent и >будет обрабатывать всё там находящееся.

    Гениальные гении гениально велосипедят гениальные велосипеды.
    Все уже завелосипедено до них
    http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Pipe как пример, если поковырять исшо, то найдется
    enotify ;)


     
     
  • 2.4, Alexander Galanin (?), 13:43, 04/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >>Далее настраиваем таблицу incron. Для этого >записываем в редакторе
    >>нижеприведённую при вызове incrontab -e. sieve->скрипт будет вызываться при
    >>перемещении новых писем в maildir-папку Sent и >будет обрабатывать всё там находящееся.
    > Гениальные гении гениально велосипедят гениальные велосипеды.
    > Все уже завелосипедено до них
    > http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Pipe как пример, если поковырять
    > исшо, то найдется
    > enotify ;)

    Не вижу, как использовать эти расширения для обработки папки Sent. Напомню, что сообщения помещаются туда почтовым клиентом по IMAP-протоколу, а не через MDA.

     
  • 2.6, Танго (?), 04:54, 09/08/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Знаете, вы меня чертовски сбили с толку.
    Вы так уверенно-насмешливо-авторитетно высказались, что я после этого подумал, что я что-то не понимаю и начал долбить маны.
    На самом деле - никакого толку в том, что Вы посоветовали нет. Потому что для Sieve в Dovecot срабатывает только на событие входящей почты.
    А если письмо в папку помещает IMAP, то Sieve даже не шелохнется.
     

  • 1.5, Sw00p aka Jerom (?), 00:19, 08/01/2013 [ответить]  
  • +/
    у довкота хороший функционал написания плагинов помимо сиева, то нуно ломать голову как устроен сам довкот, и документация не очеь уж полная
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру