Wielopoziomowa struktura folderów w Dovecot

By | 7 sierpnia 2018

Ostatnio nasz klient zgłosił problem w programie pocztowym, a mianowicie komunikat „…target mailbox doesn’t allow interior mailboxes” ? Występuje on czasami, gdy chcemy przenieść katalog z wiadomościami do innego katalogu. Okazało się, że wspomniany serwer, a dokładniej Dovecot działał na domyślnych ustawieniach, czyli korzystał z formatu mbox, gdzie domyślnie nie można zagnieżdżać folderów.

Osobiście kilka razu w życiu spotkałem się z przypadkiem tworzenia takiej struktury drzewiastej w poczcie. Metoda zaradcza jest dosyć prosta i wymaga edycji jednego z plików konfiguracyjnych oraz zmiany struktury katalogów trzymających pocztę. Zacznijmy do początku, czyli edycji konfiguracji „/etc/dovecot/conf.d/10-mail.conf”

mail_location = mbox:~/mail/mailboxes:DIRNAME=messages:INDEX=~/mail/index:CONTROL=~/mail/control:INBOX=/var/mail/%u
namespace {
separator = /
inbox = yes
list = yes
}

Po dokonaniu zmian, restartujemy wspomnianą usługę.

systemctl restart dovecot

Powyższa konfiguracja zmienia kompletnie sposób / strukturę przechowywania poczty (poza skrzynką odbiorczą). Od teraz katalog ~/mail powinien zawierać:
– katalog „control”, a w nim plik z subskrybowanymi folderami (.subscriptions)
– katalog „INBOX” jeśli będziemy dodawać podkatalogi do skrzynki odbiorczej
– katalog „index” a w nim indexy tworzone przed dovecota w celu przyspieszenia wyszukiwania / wyświetlania poczty
– katalog „mailboxes”, a wewnątrz foldery (takie jak w poczcie), a w każdym z nich plik „messages” zawierający właściwe wiadomości

Nie ma problemu, gdy budujemy infrastrukturę i nie mamy żadnych wiadomości. Jeśli omawiany problem z podfolderami, wystąpi później, to musimy sami zmienić sposób przechowywania wiadomości w skrzynkach e-mail. Przed zmianą struktury katalogów, najlepiej wyłączyć Dovecota.