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

Как создать папку, но не подписаться на нее в Dovecot's Sieve?

У меня есть правило сита:

 if header :contains "subject" ["TOP-SECRET"] {
    setflag "\\Seen";
    fileinto :create "Hidden-Folder";
    stop;
}

на основе чего все, что включает TOP-SECRET в теме перенесено в hidden-folder и установите как прочитанное.

Есть ли способ установить это Hidden-Folder как не подписан (скрыт из списка папок) через сито? Или как «прокрутить», какой файл подписок на аккаунты должен редактировать скрипт?

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

Код сита выглядит так:

if envelope :matches "To" "*@*" {
  set "recipient" "${0}";
}

     if header :contains "subject" ["TOP-SECRET"] {
        setflag "\\Seen";
        fileinto :create "Hidden-Folder";
        pipe "my-script" ["${recipient}"]; 
        stop;
    }

затем сито-труба my-script код выглядит как

#!/bin/bash

mbox=$1
result=`find /mnt/var/mailboxes -type d -name $mbox`
perl -pi -e 's/Hidden-Folder//g' $result/subscriptions

Примечание - убедитесь, что владелец всех почтовых ящиков в /mnt/var/mailboxes это Dovecot.

Я не думаю, что есть возможность настроить такое поведение - ни в Sieve, ни в конфигурации Pigeonhole, ни в Dovecot.

Но я могу предложить обходной путь: создайте скрытую папку без подписки и поместите в нее подкаталоги.

Если вы создадите папку вроде Hidden-Folder который вы определяете как отписавшийся (вручную или с помощью doveadm), действие fileinto :create "Hidden-Folder.Foo" will create the folderфуinsideHidden-Folder`, но не подписаться автоматически.

Конечно, вы также можете использовать vnd.dovecot.execute и беги doveadm mailbox unsubscribe отписаться от почтового ящика после запуска fileinto, или даже создать почтовый ящик (без подписки) перед отправкой сообщения. Хотя я не очень-то чувствую, что выполняю системные команды через Sieve; даже если это всего лишь предопределенная команда с хорошо проверенными параметрами.