Запрет удаления писем в Dovecot из почтового клиента

1 minute read

Выдалась интересная задача. Нужно сделать так, чтобы даже если у пользователя стоит в почтовом ПО удалять письма с сервера — они все равно оставались на сервере — т.е не удалялись. Это относилось, как к входящим, так и к исходящим письмам.

ПО: dovecot 2.2.13. Ставим dovecot через любой менеджер пакетов.
OC: Debian 7.x

После чего необходимо будет отредактировать несколько файлов. Первое, что нам нужно сделать, это создать папку global-acls в директории /etc/dovecot и создать там 2 файла: INBOX и Sent со следующим содержанием:

owner lrwsipka authenticated lrwsipka

После этого зайти в директорию conf.d и отредактировать два файла 20-imap.conf и 20-pop3.conf

Приводим строки с mail_plugins к следующему виду:

imap:mail_plugins = $mail_plugins quota imap_quota acl
pop3:mail_plugins = $mail_plugins quota acl

Так же отредактируем 10-mail.conf, чтобы у нас были папки: Sent, Trash и тп и тд.

namespace inbox {
  inbox = yes mailbox Drafts {
    auto = subscribe special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = subscribe special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe special_use = \Trash
  }
}

Перезапускаем dovecot и проверяем. В веб-клиенте (roundcube) при попытке удалить письмо выйдет ошибка: Доступ запрещен. С программами типа OutLook необходимо настроить синхронизацию IMAP каталогов, чтобы все корректно работало.

(С) Отто Юльевич Шмидт