У меня есть правило сита:
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
фуinside
Hidden-Folder`, но не подписаться автоматически.
Конечно, вы также можете использовать vnd.dovecot.execute
и беги doveadm mailbox unsubscribe
отписаться от почтового ящика после запуска fileinto
, или даже создать почтовый ящик (без подписки) перед отправкой сообщения. Хотя я не очень-то чувствую, что выполняю системные команды через Sieve; даже если это всего лишь предопределенная команда с хорошо проверенными параметрами.