URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 88074
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Фильтрация исходящих почтовых сообщ..."

Отправлено auto_tips , 03-Янв-13 23:52 
Предпочитаю хранить почтовые дискуссии в одном месте, а не держать отправленные письма отдельно в папке 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

При следующей отправке письма папка отсортируется.

Замечу, что подобным образом можно фильтровать любую другую папку при помещении в неё писем.


URL:
Обсуждается: http://www.opennet.me/tips/info/2728.shtml


Содержание

Сообщения в этом обсуждении
"Фильтрация исходящих почтовых сообщений с помощью sieve"
Отправлено pavlinux , 03-Янв-13 23:52 
> Предпочитаю хранить почтовые дискуссии в одном месте,
> а не держать отправленные письма отдельно в папке Sent,

dbmail + postgres CLUSTER;  

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

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


"Фильтрация исходящих почтовых сообщений с помощью sieve"
Отправлено Alexander Galanin , 04-Янв-13 13:34 
>> Предпочитаю хранить почтовые дискуссии в одном месте,
>> а не держать отправленные письма отдельно в папке Sent,
> dbmail + postgres CLUSTER;  

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

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

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


"Фильтрация исходящих почтовых сообщений с помощью sieve"
Отправлено исчо_адын_аноним , 04-Янв-13 13:38 
>Далее настраиваем таблицу incron. Для этого >записываем в редакторе
>нижеприведённую при вызове incrontab -e. sieve->скрипт будет вызываться при
>перемещении новых писем в maildir-папку Sent и >будет обрабатывать всё там находящееся.

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



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

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


"Фильтрация исходящих почтовых сообщений с помощью sieve"
Отправлено Танго , 09-Авг-13 04:54 
Знаете, вы меня чертовски сбили с толку.
Вы так уверенно-насмешливо-авторитетно высказались, что я после этого подумал, что я что-то не понимаю и начал долбить маны.
На самом деле - никакого толку в том, что Вы посоветовали нет. Потому что для Sieve в Dovecot срабатывает только на событие входящей почты.
А если письмо в папку помещает IMAP, то Sieve даже не шелохнется.

"Фильтрация исходящих почтовых сообщений с помощью sieve"
Отправлено Sw00p aka Jerom , 08-Янв-13 00:19 
у довкота хороший функционал написания плагинов помимо сиева, то нуно ломать голову как устроен сам довкот, и документация не очеь уж полная